使用ui.router如何使一个控制器成为另一个控制器的子控制器



在html中,您可以将一个控制器写入嵌套的html代码中,使其成为另一个控制器的子控制器:

<div ng-controller="parentCtrl">
<div ng-controller="childCtrl">

但是使用ui.router,您只能指定一个状态为另一个状态的子状态,如何使控制器也继承父状态的控制器?例如:

$stateProvider
.state('parent', {
url: '/',
views: {
'content': {
templateUrl : 'static/templates/parent.html',
controller  : 'ParentController'
},
}
})
.state('parent.child', {
url: '/child',
views: {
'content@': {
templateUrl : 'static/templates/child.html',
controller  : 'ChildController'
},
}
})

在这种情况下,ChildController是否自动从ParentController继承?如果没有,我该如何实现?

来自ui-router文档:

仅按视图层次结构的作用域继承

请记住,作用域属性只在状态链的下游继承如果状态的视图是嵌套的。范围的继承属性与状态和与视图(模板)嵌套有关的一切。

所以,答案取决于具体情况。这取决于您如何在状态链中配置/指定视图。

希望它能有所帮助。

最新更新