在angularjs中,我已经制作了由多个控制器组成的视图模板。现在路由时我们可以为一个模板指定多个控制器,或者模板应该只有一个控制器吗?
如果您不理解这个问题,请在评论中注明。
答案 0 :(得分:0)
实际上,答案是否定的。您不能在路由器状态下使用多个控制器,但是您可以在模板HTML中添加多个控制器。 替代解决方案是在指令中使用动态模板。如果使用动态模板,则对于每个路由器状态,您可以在不同的不同HTML模板中使用多个控制器。
app.directive('View', function () {
return {
restrict: 'E',
scope: {
templateUrl: "=",
},
replace: true,
template: "<div ng-include = 'templateUrl'></div>",
};
})
然后在指令中你可以通过传递不同的模板URL来做到这一点。 在您的模板中,您可以使用不同的不同控制器。
在html中你可以使用如下指令:
<view templateUrl = "templateUrl0.html"> <view>
<view templateUrl = "templateUrl1.html"> <view>
最后,在templateUrl0.html
和templateUrl1.html
中,您可以添加Controller0
Controller1
。