单个模板视图的多个控制器

时间:2018-02-19 01:02:03

标签: angularjs angularjs-directive angular-controller angularjs-ng-route

在angularjs中,我已经制作了由多个控制器组成的视图模板。现在路由时我们可以为一个模板指定多个控制器,或者模板应该只有一个控制器吗?

如果您不理解这个问题,请在评论中注明。

1 个答案:

答案 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.htmltemplateUrl1.html中,您可以添加Controller0 Controller1