我對Angular(不是Javascript)非常陌生,所以如果我不使用正確的術語/過程,我很抱歉。AngularJS - 取消重置數組時閃爍效果當範圍刷新
我有一個模型,如下所示:
BuyingGroups: {
availableBuyingGroups: [
obj1: {
ID: XX,
Title: XX
},
....
],
affiliatedBuyingGroups: [
obj1: {
ID: XX,
Title: XX
},
....
]
}
有(2)窗格(把它們看成列表框)。用戶可以從左側窗格向右側添加對象,反之亦然。基本上我只是將對象從一個組移動到另一個組。
上的負載,我把這些(2)名單,並使用angular.copy
複製那些到另一個靜態列表,以免影響原有的(我讀的角度使用上下文,如果你不使用angular.copy
)。
重置(取消按鈕)時,我將原始列表重置爲副本(以保持原始狀態)。 問題是取消按鈕事件,該列表似乎「重複」了約0.3秒,在窗格上閃爍,然後恢復到原始狀態(在頁面加載時)。
我試圖清除數組,設置超時等,但似乎沒有任何效果。有沒有(或者應該有)更有效,更好的方法?也許我不完全瞭解角度如何綁定到$scope
的變化?
自我= $範圍(FYI)
self.companyBuyingGroups = response.data.BuyingGroups;
self.staticCompanyBuyingGroupsModel = angular.copy(self.companyBuyingGroups);
self.staticCompanyAffiliationsModel = angular.copy(self.companyAffiliations);
HTML
<!-- affiliated instance -->
<li ng-repeat="group in companyBuyingGroups.affiliatedBuyingGroups">
.....
</li>
復位按鈕功能
self.resetBuyingGroupsForm = function() {
self.companyBuyingGroups.affiliatedBuyingGroups = [];
self.companyBuyingGroups.availableBuyingGroups = [];
//setTimeout(function() {
self.companyBuyingGroups.affiliatedBuyingGroups = angular.copy(self.staticCompanyBuyingGroupsModel.affiliatedBuyingGroups);
self.companyBuyingGroups.availableBuyingGroups = angular.copy(self.staticCompanyBuyingGroupsModel.availableBuyingGroups);
//self.companyBuyingGroups = angular.copy(self.staticCompanyBuyingGroupsModel);
//}, 50)
}
編輯
我試圖清除重置前的陣列,沿W /不清除它們。另外我的數組超小(少於50個對象)。
要解釋更多的「閃爍」,在取消功能,右窗格似乎添加副本(而不是使用原來的)。意思是,如果原始列表有3個項目,並且我從左側窗格中添加了一個項目(使其爲4),則調用取消功能,右側窗格顯示7個項目約0.3秒,然後恢復爲3個項目(這是原來的)。
爲什麼在使用angular.copy設置默認值之前清除數組? –
「...然後恢復到它的原始狀態(在頁面加載)....」您是否重新加載頁面取消?普拉克將有助於更輕鬆地調試問題。 –
@NMittal沒有抱歉我沒有重新加載頁面。 –