Plunker: http://plnkr.co/edit/01BRRI?p=preview
目的:构建一个编辑数据并保存回控制器范围的指令。
代码说明:
$ scope.object是控制器中的数据,我在指令中使用' ='在隔离范围定义中。我想在指令中编辑它并将其保存回控制器。
问题:
任何值更改后输入字段都会模糊。在控制台中,您可以找到“#”链接'模型值更改后重新触发函数。 (当model =" object.meta [key] [index]"在第41行)。
如果您注释掉第40,42行并将第41行编辑为:<editable model="object.meta[key][0]"></editable>
然后一切正常(1.重新触发链接功能.2。模型更改后输入不模糊.3。控制器$ scope.object更新。)
我需要为我的数据结构嵌套循环,我该怎么做才能解决这个问题?
答案 0 :(得分:1)
输入模糊,因为每次更新模型ng-repeater
重新渲染DOM时。
要证明这一点,请参阅该示例http://plnkr.co/edit/THJd8z?p=preview
我已经使用了angular 1.3来支持futers Bind Once
更多信息,你可以在这里找到http://swirlycheetah.com/native-bind-once-in-angularjs-1-3/
<section ng-controller="TestCtrl">
<div ng-repeat="(key, values) in ::object.meta">
<div ng-repeat="(index, value) in ::values">
<editable model="object.meta[key][index]"></editable>
</div>
</div>
{{object}}
</section>