簡體   English   中英

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;
    ...
});

那么問題是解決這個問題的最佳方法是什么?

如何獲得數據集和數據綁定的副本,而不是實際的數據集,而是您希望模板忽略的更改,所有這些都是針對特定條件的。

然后,當您想要更新數據時,您可以只對復制的數據進行必要的更改,更改將被反映出來。 我知道,這確實增加了擁有數據副本的開銷,但是一個簡單的解決方案通常可以省去以后的大量工作,特別是如果從團隊的不同成員那里查看源代碼時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM