Angularjs,即使使用浏览器的后退按钮,如何破坏部分内容?

时间:2014-04-14 15:34:52

标签: javascript angularjs

我有角度的A,B,C部分。我开始使用页面A然后B,从B到C.保持在C,我想要销毁A,B,C部分(可能使用注销功能或类似),所以如果我想使用后退按钮返回到B或保持按下后退按钮直接导航到A,我如何控制这种情况并做其他事情? (例如,重定向到另一个页面)。

有人知道怎么做吗?

提前致谢。

2 个答案:

答案 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
    });