有没有办法可以使用stateProvider在angularjs中为同一个templateUrl定义两个控制器,如下所示?
//State Provider for dashBoard Screen
.state('dashBoard', {
cache : false,
url : "/dashBoard",
templateUrl : dashBoardHtml,
controller : ["FirstController","SecondController"]
})
数据绑定逻辑在我的控制器中很重,行数超过1000,我已经优化,降低了cyclometic复杂性的一切。 但是现在要使它更模块化,我需要在不改变视图的情况下拆分控制器,就像不使用任何嵌套视图一样。
有没有办法为同一个templateURL / html定义多个控制器?
答案 0 :(得分:1)
这对您有用,但如果您愿意,那么您也可以使用ng-controller
指令
$stateProvider.state('view', {
url: "/url",
views: {
'menuContent': {
templateUrl: "template",
controller: ['ctrl1', 'ctrl2']
}
}
});
使用diretive
的例子 <div ng-controller="testController2">
<!-- your view content -->
</div>
<div ng-controller="testController1">
<!-- your view content -->
</div>
答案 1 :(得分:1)
我认为您可以将它们放入多个业务逻辑服务或UI逻辑指令中,以使您的代码更加清晰和整洁。
答案 2 :(得分:0)
您只能从状态中分配一个控制器,而在此模板中分配另一个控制器
.state('dashBoard', {
cache : false,
url : "/dashBoard",
templateUrl : dashBoardHtml,
controller : FirstController
})
模板
<div data-ng-controller="SecondController">
<!-- your view content -->
</div>
答案 3 :(得分:0)
你可以在html上分配控制器
<div ng-controller="controller1"></div>
和其他div上的相同HTML
<div ng-controller="controller2"></div>