我对角度转换范围感到困惑。我试图说出可折叠的指令。但是在transclude范围内绑定不会改变父模型,除非我使用某个对象作为模型,例如。数据
<div>
data.prop: {{data.prop}} <br>
prop: {{prop}}
<collapsible>
data.prop: <input type="text" ng-model="data.prop" /> <br> // WILL CHANGE PARENT
prop: <input type="text" ng-model="prop" /> // WONT CHANGE PARENT
</collapsible>
</div>
我已经阅读过这个主题,但我仍然不知道为什么我必须在模型中使用前缀。 Confused about Angularjs transcluded and isolate scopes & bindings
http://plnkr.co/edit/z3IvR1a37jdNRCJWG0Yq?p=preview
的工作示例在我的应用中,我使用对象表单,所以它工作正常,但我只是想知道为什么。
答案 0 :(得分:0)
当您使用对象绑定到模型时,您的对象将作为引用传递到不同的范围,而不是副本,Javascript
对象将作为引用传递给函数。在这种情况下,它仍将引用先前的范围。