有人可以澄清一下AngularJS控制器的生命周期是什么吗?
控制器是单例的,还是按需创建/销毁的?
如果是后者,什么触发了控制器的创建/销毁?
考虑以下示例:
var demoApp = angular.module('demo')
.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/home', {templateUrl: '/home.html', controller: 'HomeCtrl'})
.when('/users',{templateUrl: '/users.html', controller: 'UsersCtrl'})
.when('/users/:userId', {templateUrl: '/userEditor.html', controller: 'UserEditorCtrl'});
});
demoApp.controller('UserEditorCtrl', function($scope, $routeParams, UserResource) {
$scope.user = UserResource.get({id: $routeParams.userId});
});
例如:
在上面的示例中,当我导航到时/users/1,将加载用户1并将其设置为$scope。
然后,当我导航到时/users/2,将加载用户2。是相同的UserEditorCtrl重用实例,还是新的实例被创建?
如果是新实例,什么触发了第一个实例的销毁?
如果重复使用,它如何工作?(即,加载数据的方法似乎在创建控制器时运行)
POPMUISE
白衣非少年
相关分类