2012-08-08 52 views
1

有無論如何強制角度更新/重新編譯綁定內的變量?當我將我的數組(在我的HTML中定義爲for循環)等於[]時,我遇到了一個問題,並且它沒有選中它。有任何想法嗎?AngularJS不會刪除HTML中的結果

+1

角度觸發器摘要循環中的DOM更新,因此您可以嘗試調用Scope。$ digest() - 有關更多信息,請參閱。說了這些,直接調用$ digest通常是非常糟糕的主意,所以我想我們在你的應用程序設計中缺少一些東西。你能不能請一個jsFiddle更好地說明你的用例? – 2012-08-08 18:01:21

+0

你能否提供一個jsfiddle演示問題。這會有很大的幫助。 – 2012-08-08 18:01:51

+1

如果您使用的是外部庫/插件,Scope。$ digest()可能是您的答案,但如果情況並非如此,那我就不會去那裏了。 – 2012-08-08 18:03:29

回答

3

一種解決方法是確保您使用相同的數組引用。我一直在做這樣的,每當我想要的所有元素的更新到綁定數組:

myArray.length = 0; 
angular.forEach(newArray, function(item){ 
    myArray.push(item); 
}) 

// Note: try without this line first as it isn't always necessary 
$scope.$digest(); 

使用myArray.length = 0送走陣列保持的參考陣列看到this post獲取更多信息。

您也可以使用通常的spliceunshift分別移除項目並將其添加到數組的開頭。

+0

你的回答幾乎是正確的。你可以只添加「$ scope。$ digest();」作爲最後一行,然後我將你的答案設置爲接受。 – matsko 2012-08-08 19:27:46

+0

我已經添加了一個免責聲明的代碼,因爲我從來沒有使用它(至少有一個ng重複)。很高興認識這些人,以防我將來遇到具有約束力的問題! – Gloopy 2012-08-08 20:17:45

+0

太棒了! :) – matsko 2012-08-08 21:21:31