在模板下阅读docs tutorial。以下代码取自app / index.html
棱角是否允许兄弟范围的交叉可见性?
如果范围1中的命名查询数据是否可用于范围2中的过滤器,该范围是兄弟而不是父范围?感谢。
Tools|Options

答案 0 :(得分:1)
从$ rootScope开始有一个$ scope树。在您的HTML中,只有一个范围在起作用(忽略ngRepeat,每次迭代都会创建自己的子范围)。因此,当用户在输入框中输入值时,它将被绑定到查询,该查询位于与兄弟div相同的范围内。因此,为什么两个查询都绑定到同一个范围变量,即使它们在兄弟div中。
打破绑定的一种方法是为输入控件引入子范围。例如,ngController将创建一个继承父作用域的子作用域。只要按下某个键,它就会在子范围内创建query
的副本。这打破了双向绑定,因为现在查询变量的两个副本存在于不同的范围内。
<div class="col-md-2" ng-controller="anyCtrl"> //-----------scope 1 -----------------
<!--Sidebar content-->
Search: <input ng-model="query">
</div>
您应该可视化您的$ scope树并了解哪些指令将创建子范围。还要记住,$ scope变量查找(读取)是通过原型$ scope继承来解析的(意味着$ scope变量的定义可能存在于$ scope树的更高位置)。但$ scope变量写入将写入其直接范围 - 有时会破坏明显的绑定,如上所述。