在Angular.js中重置位置更改的$ rootScope属性

时间:2014-04-14 10:06:28

标签: angularjs angularjs-scope

在我的应用程序中,我有一个名为 $ rootScope.currentStatus $ rootScope 属性,用于在某些情况下在body上设置css类。

问题是我需要在用户离开当前页面时将值重置为默认值,但我不知道在哪里可以拦截位置更改。目前我使用$ routeProvider:

app.config(function ($routeProvider, $locationProvider, $httpProvider) {   
    $routeProvider.when('/site/dashboard', {
        templateUrl: '/partials/site/dashboard.html',
        controller: 'DashboardCntl',
        resolve: {
            loggedin: checkLoggedin
        }
    });

    ....
});

有很多条目。我可以使用解决添加重置我的变量的函数,但我必须插入所有路由条目。

你还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

好的,我自己找到了解决方案,我可以使用此代码拦截位置更改(路线更改):

$scope.$on('$routeChangeSuccess', function (next, current) {

    $rootScope.currentStatus = "";

});

所以我不必在所有路由条目中重置变量,我总是在路由更改时重置它,然后在控制器中设置正确的值。