簡體   English   中英

AngularJS-摘要循環/重繪時間

[英]Angularjs - Digest Loop/Repaint timing

AngularJS有一個小問題。 請參閱以下內容:

$http({method: 'GET', url: 'some/url/withJSON.json'})
      .success(function(data) 
               {
               $scope.data = data
               $animations._load('arg1')
               })

$ animations是一個注冊服務,可以執行某些操作。 偶爾(大約20%)_load()方法將在窗口繪制/摘要循環完成之前運行的時間,這意味着可視化尚未完成。 通過以10ms的setTimeout()包裝_load()可以解決此問題,但是摘要循環完成后,AngularJS中是否存在隱式/顯式的方法來執行回調?

如果沒有更多信息,我建議$timeout(fn)將是最好的方法。 基本上,它可以確保在完成對角度的處理后,瀏覽器才能呈現出來。 大致上它等效於setTimeout(fn, 0) ,因此您已經建議過,但是對於測試來說它是可模擬的。

還有$scope.$evalAsync(fn)通常會在當前摘要循環之后但在DOM渲染之前渲染。 我傾向於$evalAsync因為它使我更容易推理,並且在此期間不會發生其他非角度事件,但這取決於哪個對您$evalAsync

答案具有有關這兩種方法的更多詳細信息。

暫無
暫無

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

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