Angular 从 transclude 范围更改父模型
Angular changing parent model from transclude scope
我对 angular 嵌入范围感到困惑。我正在尝试让我们说可折叠指令。但是在 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
在我的应用程序中,我将对象用于表单,因此它工作正常,但我只想知道为什么会这样。
当您使用对象绑定到模型时,您的对象作为引用传递到不同的范围,而不是副本,在 Javascript
中,对象作为引用传递给函数。在那种情况下,它仍将引用以前的范围。
我对 angular 嵌入范围感到困惑。我正在尝试让我们说可折叠指令。但是在 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
在我的应用程序中,我将对象用于表单,因此它工作正常,但我只想知道为什么会这样。
当您使用对象绑定到模型时,您的对象作为引用传递到不同的范围,而不是副本,在 Javascript
中,对象作为引用传递给函数。在那种情况下,它仍将引用以前的范围。