[英]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;
...
});
那么問題是解決這個問題的最佳方法是什么?
如何獲得數據集和數據綁定的副本,而不是實際的數據集,而是您希望模板忽略的更改,所有這些都是針對特定條件的。
然后,當您想要更新數據時,您可以只對復制的數據進行必要的更改,更改將被反映出來。 我知道,這確實增加了擁有數據副本的開銷,但是一個簡單的解決方案通常可以省去以后的大量工作,特別是如果從團隊的不同成員那里查看源代碼時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.