从语法上来说,这是行不通的。这(语法上)可以工作:
$stateProvider.state('a.view', {
url: "/anurl",
views: {
'menuContent': {
templateUrl: "anUrlToMyTemplates",
controller: ['ACtrl', 'BCtrl']
}
}
});
但是 AngularJS 使用ZERO or ONE控制器由DOMElement
.
您可以分配CtrlA
为您A
view :
$stateProvider.state('a.view', {
url: "/anurl",
views: {
'menuContent': {
templateUrl: "anUrlToMyTemplates",
controller: 'ACtrl'
}
}
});
进而into your A
view :
<div data-ng-controller="BCtrl">
<!-- your view content -->
</div>
也就是说,出于代码设计的目的,正确的方法是将两个控制器的操作合并到一个中,如果它们必须控制相同的模板元素。如果它们控制模板的不同部分,请对一个部分使用一个控制器,或对整个视图使用一个控制器,对特定部分使用另一个控制器:
<!-- your view controlled by ACtrl configured in route provider -->
<div>
<!-- your view content, part A -->
<div data-ng-controller="BCtrl">
<!-- your view content, part B -->
</div>
</div>