2016-08-16 51 views
1

這裏是我使用的代碼。我試圖顯示在這個指令標籤下顯示的html元素,以在4秒後顯示。當頁面正在加載的第一次延遲的HTML元素指定的,但是當我瀏覽到另一個頁面,回來相同的延遲元件會立即顯示

Utils.directive('ieUtilsError', function() { 
    var directive = {}; 
    directive.link = function(scope, element, attrs) { 
    element.attr("style","display:none") 

     function show() { 
     element.attr("style","display:inline") 
    } 

     $timeout(function() { 
     show(); 
    }, 4000); 
    } 
}); 
+0

請驗證指令是否啓動了兩次。這可能會訣竅。當你回到同一頁面時,第二次啓動的超時將被觸發。 –

+0

可以請電話給我如何做到這一點,因爲我是一個新手! –

+0

在該** $ timeout **函數上放置一個**斷點**,單擊**另一個頁面**,並且**重定向回到較早的頁面**,並查看調試器是否將您帶到斷點,如果是這樣,這意味着每次你進入該頁面,超時功能正在運行 – nicker

回答

0

這是網頁沒有加載時你按回按鈕它將保持舊頁面,這就是爲什麼你的超時正在工作。

更好的使用路徑瀏覽網頁時,它會幫助你重新加載頁面,如果你按下後退按鈕。

function myController($route, $rootScope) 
{ $rootScope.$on('$rou‌​teUpdate', function() { if (/*shouldReload*/) { 
$route.reload(); } } } 
+0

雅我試過使用它,並導致性能問題。我的儀表板需要大量的時間來加載,如果我添加到路線任何想法如何處理性能的東西 –

+0

在這種情況下,你需要優化你的代碼的最大程度。我不認爲這是路線問題。 –

相關問題