从transclude范围角度改变父模型

时间:2016-03-31 13:06:12

标签: javascript angularjs angularjs-ng-transclude

我对角度转换范围感到困惑。我试图说出可折叠的指令。但是在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

的工作示例

在我的应用中,我使用对象表单,所以它工作正常,但我只是想知道为什么。

1 个答案:

答案 0 :(得分:0)

当您使用对象绑定到模型时,您的对象将作为引用传递到不同的范围,而不是副本,Javascript对象将作为引用传递给函数。在这种情况下,它仍将引用先前的范围。