我想知道是否有可能阻止嵌套div中的子div继承其父控制器。
<div id="parentDiv" ng-controller="parentCtrl">
<div id="childDiv" ng-controller="childCtrl">
</div>
</div>
想象一下,我有一个名为name
的范围变量,我怎样才能确保在childDiv
方无法访问该名称。
请参阅plunk。
让子div访问其父控制器的变量没有问题,但它感觉不对。那么命名冲突怎么样?
答案 0 :(得分:1)
我不相信有一种方法可以隐藏来自父作用域的子作用域的变量。父级的范围始终可用于子级的范围。我确实有两点可能会有所帮助。
1)命名冲突可能不是您所期望的问题。如果将childCtrl中的$ scope.name设置为“testChild”,则name变量的值parentCtrl仍为“testParent”。子$ scope可以访问父级,但不会覆盖/共享变量,只能覆盖对象。
2)如果您担心命名冲突或混淆,我建议在对象上放置一个对象并向该对象添加属性。示例:$ scope.parentData = {name =“testParent”}和$ scope.childData = {name =“testChild”}