Javascript 什么';$scope.$on(';$routeChangeSuccess';…)与在scope函数中调用方法之间的区别是什么?
我从AngularJS开始,我有一个问题与设置新控制器时调用方法的方式有关 假设我有一个如下配置的路由:Javascript 什么';$scope.$on(';$routeChangeSuccess';…)与在scope函数中调用方法之间的区别是什么?,javascript,angularjs,Javascript,Angularjs,我从AngularJS开始,我有一个问题与设置新控制器时调用方法的方式有关 假设我有一个如下配置的路由: $routeProvider.when('/myApp/:id', {controller: 'MyAppCtrl'}); 关于执行上下文和$scope生命周期,这两个控制器代码之间有什么区别 加载分部后,每个备选方案运行多少次 以及: 非常感谢。在我看来,我会在路由配置中使用resolve,而不是您的两个选项 回到你的问题上来 我相信控制器只在部分加载后执行一次 这两个案例做的几乎
$routeProvider.when('/myApp/:id', {controller: 'MyAppCtrl'});
- 关于执行上下文和$scope生命周期,这两个控制器代码之间有什么区别
- 加载分部后,每个备选方案运行多少次
非常感谢。在我看来,我会在路由配置中使用resolve,而不是您的两个选项 回到你的问题上来 我相信控制器只在部分加载后执行一次
这两个案例做的几乎是一样的。第一个依赖于事件,与第二个相比,这是一个额外的步骤。$on将侦听器分配给事件。这意味着您可以通过发送$broadcast('routeChangeSuccess')手动触发$on 加载分部代码后,第二个代码将运行一次
因此,使用$on加载控制器对您没有任何好处非常感谢。我刚刚了解了决心,这澄清了我的疑问。这两个回答都回答了我的问题,但我将此标记为答案,因为它在路由配置中使用resolve时提供了更多帮助,从而解决了我的问题。再次感谢@msohns和maxisam。
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){
...
}
});