8
我有這樣的功能,在AngularJS控制器在AngularJS控制器休假銷燬超時
$timeout($scope.loadPosts, 5000); // pull every 5 seconds
當我從控制器(另一種觀點),我怎麼可以停止超時,並最終摧毀導航離開控制器,所以它不再運行?
我有這樣的功能,在AngularJS控制器在AngularJS控制器休假銷燬超時
$timeout($scope.loadPosts, 5000); // pull every 5 seconds
當我從控制器(另一種觀點),我怎麼可以停止超時,並最終摧毀導航離開控制器,所以它不再運行?
我能夠通過偵聽$破壞事件解決它,就像這樣:
var pull = $timeout($scope.loadPosts, 5000); // pull every 5 seconds
$scope.$on('$destroy', function(){
$timeout.cancel(pull);
});
控制器反正銷燬導航了。 – Neikos
但是超時函數並沒有停止運行 – subZero
'$ timeout'僅僅是'setTimeout'的一個包裝,它在內部處理。你從'setTimeout'返回的數字實際上不是一個引用,而只是你可以用來摧毀定時器的內部數字。 – Neikos