多个ng-controller指令使用"控制器作为x"在同一个元素上

时间:2015-01-05 14:03:56

标签: javascript angularjs

  1. 为什么在Angular中不可能在同一个元素上放置两个ng-controller指令而且
  2. 这个问题的可能缓解方案 - 例如自定义指令或HTML元素嵌套,使用单个ng-controller指令命名一对,但也可能有其他
  3. >

    这样的事情:

    <div ng-controller="ControllerOne as c1" ng-controller="ControllerTwo as c2">
        {{ c1.value }}, {{ c2.value }}
    </div>
    

    这是一个JSFiddle example,它在同一个元素上设置两个控制器。

1 个答案:

答案 0 :(得分:5)

这是不可能的,因为ng-controller为当前元素创建了隔离范围。所以这是不可能的。因此,在同一元素上不能有两个孤立的范围。

您需要将代码更改为:

<div ng-controller="ControllerOne as c1">
    <div ng-controller="ControllerTwo as c2">
        {{ c1.value }}, {{ c2.value }}
    </div>
</div>

在任何html标记中都具有相同的名称属性也无效。