Angular:更新一次性绑定的数据
Angular: Update one-time binded data
假设您的指令控制器中有一个类似的数组
this.items = [
{active: true, title: 'bar', ...},
{active: false, title: 'foo', ...},
...
];
在模板中,你可以将其可视化为
<ol>
<li ng-repeat="item in ::items" ng-class="...">{{item.title}}</li>
</ol>
注意::
,它确保只执行一次,因为该指令在ng-repeat
准备好之后也会注入一些DOM元素。
演示
然而,在某个时间点,应用程序会收到更新
this.items = updatedItems;
更新与原始数据相同,除了每个项的某些属性(例如,active
可能从true
更改为false
)。现在,由于::
,更新将不起任何作用。现在我可以迭代每个项目
updatedItems.forEach((item, index) => {
$scope.items[index].active = item.active;
$scope.items[index].title = item.title;
...
});
所以问题是,解决这个问题的最佳方法是什么?
不如有一个数据集和数据绑定的副本,而不是实际的数据集,你希望模板忽略对其的更改,所有这些都是针对特定条件的。
然后,当您希望更新数据时,您只需更新对复制数据的必要更改,这些更改就会得到反映。我知道,这确实增加了拥有数据副本的开销,但一个简单的解决方案通常可以避免以后的许多麻烦,尤其是当从团队的不同成员那里查看源时。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- Telerik rad组合框多列数据绑定
- 数据绑定:'系统Char'不包含名为'xxxxx'
- OnsenUI AngularJS数据绑定无法正常工作
- Ionic-item在导航栏中进行双向数据绑定
- 基本D3.js:如何将具有其他属性的数据绑定到元素
- 使用自定义数据属性或将数据绑定到处理程序来处理事件
- ListView的ItemTemplate内的自定义HtmlControl的数据绑定失败
- $http中的Angular 1数据绑定承诺不起作用
- 在何处和何时添加具有数据绑定的元素
- 使用AngularJs数据绑定的三元运算符显示图像
- 为什么针对工厂的Angular数据绑定只适用于函数
- 敲除:如何使用可见数据绑定可见来隐藏段落标记
- 在数据绑定中使用对象敲除绑定
- 如何在angularjs中检查Kendo树视图数据绑定事件
- 将json数据绑定到剑道网格
- AngularJS数据绑定中断ngRepeat+奇怪行为
- JavaScript HTMLElement 属性上的数据绑定 在 Polymer 中
- 视窗 8/Metro UI 数据绑定 JavaScript
- 挖空和显示模块模式的数据绑定问题