javascript - 在同一元素上使用 "controller as x"的多个 ng-controller 指令

标签 javascript angularjs

  1. 为什么在 Angular 中不能将两个 ng-controller 指令放在同一个元素上并且
  2. 对于这个问题,有哪些可能的缓解方案 - 例如自定义指令或 HTML 元素与单个 ng-controller 指令嵌套等等,但可能还有其他情况还有

像这样:

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

这是一个 JSFiddle example在同一个元素上设置两个 Controller 。

最佳答案

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

您需要将代码更改为:

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

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

关于javascript - 在同一元素上使用 "controller as x"的多个 ng-controller 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781172/

相关文章:

javascript - jsPlumb 在 angular.js 中的 View 更改后不会重绘?

javascript - 表格不会提交

javascript - 如何检查数组是否包含多个同一个单词

javascript - 检测单页应用程序的页面变化 JS

javascript - angularjs - 指令模板未以正确的方式编译

angularjs - 如何隐藏html5验证弹出消息

AngularJs 1.5 ES6 : bindings undefined in controller

javascript - 如何在Javascript中显示带有字符索引的数组元素?

javascript - 如何通过 JQuery 附加到附加元素?

JavaScript通过控制台访问多个站点