我在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,以查找$scopeMainCtrl,但是我正在获取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/

10-11 05:49