2016-04-14 85 views
0

夥計我想在AngularJS中做出有條件或動態的延遲。 我知道我們可以使用timeout,我要的是讓動態像下面如果條件不在滿足比它更等待有固定的時間延遲:AngualrJS有條件或動態延遲

var time =500; 
$timeout(function(){ 
       if(success==false){ 
         time =5000; 
        } 
       },time); 

所以,如果條件不符合,然後延遲增加。其實我想等待數據加載。

回答

0

使用$ timeout(或setTimeout,無論角度)立即註冊回調函數以延遲執行,因此更改回調中「time」變量的值不會影響實際延遲。

如果你正在等待數據加載,你還有其他的選擇使用類似的承諾,在角可以使用$ Q服務 - https://docs.angularjs.org/api/ng/service/ $ Q 一旦數據是可用的解決承諾

另一個選項,如果您使用的是UI-router,則使用狀態的「resolve」屬性,以確保數據在切換狀態前加載。