问题:
页面A,js循环打印1,跳转到页面B后,还是在继续打印1。原js定时器仍在执行未被销毁。
解析:
路由跳转只会销毁上一个$scope上的属性值,像setTImeout或者异步都还是在js的执行线程中。
$templateCache.removeAll();这个不能清理异步。需要自己手动清理,在destroy时。
解决:
destroy只能写在循环的那个js里,清除那个页面里面的异步,方便维护。
var timer = $interval(function() { console.log(1);},1000);$scope.$on("$destroy", function() {$interval.cancel( timer );});