2016-09-20 53 views
0

我正在使用ngRoute。 dashboardController上有$美元間隔,請問如何在離開dashboard頁面後取消它?我試圖聽$destroy。但是,當我輸入dashboard頁面時,似乎此事件激發。 $routeChangeSuccess也不起作用。

路線:

.when('/dashboard', { 
     templateUrl: 'dashboard.html', 
     controller: 'dashboardController', 
    }) 
    .when('/applications', { 
     templateUrl: 'applications.html', 
     controller: 'appController', 
    }) 

dashboardController:

var update = $interval(function() { 
    //..... 
},1000) 

$scope.$watch('$destroy', function(e) { 
    $interval.cancel(update); 
}) 
+0

你能給我們一個高層次的概述,說明爲什麼你需要取消間隔嗎?我們可能會提供更好的解決方案。 – Nix

+0

我使用$ interval來繼續發送ajax請求來更新'dashboard'和一些其他頁面上的一些數據。當我僅使用其中的一部分時,顯然我不想繼續發送所有請求。 – vincentf

+0

爲什麼'$ destroy'不適合你? – Nix

回答

2

啊,我錯過了第一次!您有$scope.$watch但它應該是$on

以下代碼將取消您的間隔$destroy,當您的路線更改時會被調用。

$scope.$on('$destroy', function(e) { 
    $interval.cancel(update); 
}); 
+0

哦,我沒有注意到我的語法...謝謝尼克斯 – vincentf

相關問題