我有角度的A,B,C部分。我开始使用页面A然后B,从B到C.保持在C,我想要销毁A,B,C部分(可能使用注销功能或类似),所以如果我想使用后退按钮返回到B或保持按下后退按钮直接导航到A,我如何控制这种情况并做其他事情? (例如,重定向到另一个页面)。
有人知道怎么做吗?
提前致谢。
答案 0 :(得分:1)
如果每个部分都有一个控制器,那么你可以使用$ destroy,每当控制器范围被销毁时,这个事件就会被角度触发
$破坏()
从父级移除当前范围(及其所有子级) 范围。删除意味着不再调用$ digest() 传播到当前范围及其子级。删除也意味着 当前范围符合垃圾收集条件。
$ destroy()通常由诸如ngRepeat for之类的指令使用 管理循环的展开。
在范围被销毁之前,广播了一个$ destroy事件 这个范围。应用程序代码可以注册$ destroy事件处理程序 这将使它有机会进行任何必要的清理。
下面是一个如何使用它的例子
ctrl.directive('handleDestroy', function() {
return function(scope, tElement, attributes) {
scope.$on('$destroy', function() {
alert("In destroy of:" + scope.todo.text);
});
};
});
答案 1 :(得分:0)
$ router有$routeChangeStarted
事件,您可以订阅。这看起来像
$scope.$on('$routeChangeStart', function(event, nextLoc, currentLoc) {
//Add your custom logic based on nextloc and currentloc to change location using the $location service
});