0
我試圖在用戶單擊保存按鈕時顯示加載指示器。單擊按鈕時,狀態將成功更改,但將範圍內loading
屬性的值恢復爲false狀態不會更新UI。加載的角度綁定不會更新HTML
這是我做的範圍屬性錯誤,或者這是一個缺陷與角?
這裏是我的jsBin:http://jsbin.com/xafexorope/2/edit?html,output
我試圖在用戶單擊保存按鈕時顯示加載指示器。單擊按鈕時,狀態將成功更改,但將範圍內loading
屬性的值恢復爲false狀態不會更新UI。加載的角度綁定不會更新HTML
這是我做的範圍屬性錯誤,或者這是一個缺陷與角?
這裏是我的jsBin:http://jsbin.com/xafexorope/2/edit?html,output
爲什麼它不工作是因爲角度的內部髒檢查迴路不解僱的原因。這是因爲你使用了一個標準的setTimeout。除此之外,可以在setTimeout回調結束時手動調用$ scope。$ apply(),或者更好地使用angular wrapper $ timeout。
這是你更新jsbin: http://jsbin.com/devuhovaxa/3/edit
另外這裏$超時文檔: https://docs.angularjs.org/api/ng/service/$timeout
在我的實際應用中其回調的UserApp.io Ajax請求,我只是用超時所以這個例子會起作用。這就是說,我在那裏使用了'$ scope。$ apply',它起作用了!謝謝! – LordZardeck 2014-11-14 17:51:06
有關此特定問題的任何有用的文檔建議?特別是「髒檢查」循環和'$ scope。$ apply'? – LordZardeck 2014-11-14 17:52:32
不知道我是否明白你在尋找什麼,但這些帖子是相當不錯的:http://www.sitepoint.com/understanding-angulars-apply-digest/和這一個http://www.benlesh.com/ 2013/08/angularjs-watch-digest-and-apply-oh-my.html – zewa666 2014-11-14 17:55:28