繁体   English   中英

在angularjs的ng-repeat之外,作用域不起作用

[英]scope is not working outside ng-repeat in angularjs

的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>

控制者

$scope.strA = {
  a1: "abc",
  a2: "bcd"
};

当我在文本框中更改值时,ng-repeat内的obj也会更改。 但价值包裹 不要改变

这是codepen: http ://codepen.io/anon/pen/vLyrxm
为什么会这样呢? 据我所知,两者的价值都应该改变

ngRepeat创建新的子范围。 这意味着在每个重复的li都有一个新作用域,而使用ngMOdel则绑定到该本地作用域。 您可以改为执行以下操作:

<li ng-repeat="(key, value) in strA">
    obj.str = {{value}}
    <input ng-model="strA[key]" />
</li>

演示: http //codepen.io/anon/pen/adBKVd?editors = 101

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM