Ответ 1
Синтаксически это не сработает. Это (синтаксически) могло бы работать:
$stateProvider.state('a.view', {
url: "/anurl",
views: {
'menuContent': {
templateUrl: "anUrlToMyTemplates",
controller: ['ACtrl', 'BCtrl']
}
}
});
Но AngularJS использует ZERO или ОДИН контроллер DOMElement
.
Вы можете назначить CtrlA
для вашего представления A
:
$stateProvider.state('a.view', {
url: "/anurl",
views: {
'menuContent': {
templateUrl: "anUrlToMyTemplates",
controller: 'ACtrl'
}
}
});
И затем в ваш A
вид:
<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>