我从AngularJS开始,我有一个与设置新控制器时调用方法的方式有关的问题。
我们说我的路线配置如下:
$routeProvider.when('/myApp/:id', {controller: 'MyAppCtrl'});
关于执行上下文和$ scope生命周期,这两个控制器代码之间的区别是什么?
加载部分后每个替代品运行多少次?
app.controller('MyAppCtrl',function($scope,$routeParams){
$scope.$on('$routeChangeSuccess', function(){
$scope.data = getNewData($routeParams.id);
});
function getNewData(id){
...
}
});
和
app.controller('MyAppCtrl',function($scope,$routeParams){
$scope.data = getNewData($routeParams.id);
function getNewData(id){
...
}
});
非常感谢。
答案 0 :(得分:1)
在我看来,我会在路由配置中使用resolve而不是你的2个选项
回到你的问题。
我相信控制器只在部分加载后执行一次。
这两个案例几乎都在做同样的事情。第一个依赖于事件,这是与第二个事件相比的额外步骤。
答案 1 :(得分:0)
$ on为事件分配监听器。含义您可以通过发送$ broadcast('routeChangeSucess')手动触发$。
第二个代码运行一次,一旦加载了部分。
所以使用$ on来获得一个控制器负载不能做任何好事