我在main.html
中有这个:
<div ng-controller="MainCtrl">
<form ng-controller="SearchCtrl">
<input ng-model="query" ng-change="changed(query)" />
</form>
</div>
并且,
index.html
:<html>
<head>
<title>Dashboard</title>
</head>
<body ng-app="MyApp">
<nav ng-controller="NavCtrl">
...
</nav>
<div ng-view></div>
</body>
</html>
而且,我的ngRoute配置如下:
module.config(function($routeProvider)){
$routeProvider.when('/', {
templateUrl: 'views/main.html',
controller: 'SearchCtrl'
});
}
我尝试访问
$scope.$parent
中的SearchCtrl.js
,以查找$scope
的MainCtrl
,但是我正在获取undefined
。我尝试在配置中更改控制器,但随后无法访问
SearchCtrl
。我该怎么办? 最佳答案
根据显示的结构,ng-view
中的所有内容都将在由路由配置.... SearchCtrl
设置的控制器中。
然后里面是MainCtrl
,里面是另一个SearchCtrl
(新实例)
因此,应该将路径控制器更改为MainCtrl
并删除ng-controller="MainCtrl"
module.config(function($routeProvider)){
$routeProvider.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
});
}
main.html
<div>
<form ng-controller="SearchCtrl">
<input ng-model="query" ng-change="changed(query)" />
</form>
</div>
关于javascript - 在ngRoute中使用嵌套 Controller -AngularJS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35103648/