HTML
<ul>
<li ng-repeat="obj in strA">
obj.str = {{obj}}
<input ng-model="obj" />
</li>
</ul>
obj in <code>{{ strA.a1 }}</code>
obj in <code>{{ strA.a2 }}</code>
Controller
$scope.strA = {
a1: "abc",
a2: "bcd"
};
当我更改文本框中的值时,ng-repeat 中的 obj 会发生变化。但是 包裹的值不会改变
这是代码笔:http://codepen.io/anon/pen/vLyrxm
为什么会这样?据我所知,这两个值都应该改变
最佳答案
ngRepeat 创建新的子作用域。这意味着在每个重复的 li
中都有一个新的作用域,而使用 ngMODel 您将绑定(bind)到这个本地作用域。你可以做这样的事情:
<li ng-repeat="(key, value) in strA">
obj.str = {{value}}
<input ng-model="strA[key]" />
</li>
关于javascript - 范围在angularjs中的ng-repeat之外不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34527891/