Angularjs - 刷新路由更改时的控制器范围

时间:2014-10-16 01:56:38

标签: javascript angularjs

想知道在路线更换时刷新控制器范围的最佳方法是什么?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:4)

我会重构在单个函数中将范围内的所有数据属性初始化,称为initScope(),在控制器首次运行时调用,以及$routeChangeSuccess(如果你想处理解析到相同路由的事件的URL的更改,也可能$routeChangeUpdate

e.g。

app.controller('MyCtrl', ['$scope', function ($scope) {
    function initScope() {
        $scope.foo = 1;
        $scope.bar = { ram: 'ewe' };
    }

    initScope();

    $scope.$on('$routeChangeUpdate', initScope);
    $scope.$on('$routeChangeSuccess', initScope);
}