$scope.$on('$routeChangeSuccess'..) 和在 scope 函数中调用方法
What's the difference between $scope.$on('$routeChangeSuccess'...) and calling a method in the scope function?
我从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){
...
}
});
谢谢。
在我看来,我会在路由配置中使用 resolve 而不是您的 2 个选项
回到你的问题。
我相信控制器在加载部分后只执行一次。
这两个案例几乎在做同样的事情。第一个依赖于事件,与第二个相比,这是一个额外的步骤。
$on将侦听器分配给事件。这意味着您可以通过发送$broadcast('routeChangeSucess')手动触发$on。
第二个代码运行一次,一旦加载了部分代码。
因此,将$on用于控制器负载对您没有任何好处
相关文章:
- Angular:如何在状态更改时调用scope方法
- Angularjs从纯JS函数调用$scope.function
- Angular js - 异步调用 $scope.users 后不更新模态值
- 在AngularJs中,当我调用函数时无法获得$scope
- AngularJS Scope.on和Scope.emit在筛选器中的调用顺序
- 仅在focusout字段之后调用$scope.watch函数
- 如何调用$scope$apply()仅当它's还没有进行中
- 如何通过AngularJS中的一个调用在多个控制器($scope)中插入相同的数据
- 分析异步调用未更新AngularJS中的$scope变量
- 我正在使用 $scope.$apply 在 http 调用后更新对象数组.谁能告诉我正确的方法
- 无法在茉莉花测试中调用$scope.form.$submitted:未定义
- 对 angular.extend 的调用不会导致 $scope.$watch proc
- 为什么 $scope.getList() 在 $scope.showList 的状态更改时被调用
- 无法调用$scope上定义的函数
- $scope.$on('$routeChangeSuccess'..) 和在 scope 函数中调用方法
- 角度$scope首先设置值而不是服务,然后第二个函数调用一切正常
- 尝试将数据数组设置为从视图调用函数后$scope
- 从 AngularJS 中$scope上定义的另一个函数调用$scope上定义的函数
- Scope.watch 在指令中调用在开头 angularjs
- Angular $http调用不绑定成功$scope.data