想知道在路线更换时刷新控制器范围的最佳方法是什么?
任何帮助将不胜感激!
答案 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);
}