<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>
$scope.strA = {
a1: "abc",
a2: "bcd"
};
当我更改文本框中的值时,ng-repeat内的obj会发生变化。但由包裹的值不会改变
以下是codepen:http://codepen.io/anon/pen/vLyrxm
为什么会这样?据我所知,这两个值都应该改变
答案 0 :(得分:6)
ngRepeat创建新的子范围。这意味着在每个重复的li
中都有一个新的范围,并且使用ngMOdel绑定到此本地范围。你可以这样做:
<li ng-repeat="(key, value) in strA">
obj.str = {{value}}
<input ng-model="strA[key]" />
</li>