Может кто-нибудь прояснить, что такое жизненный цикл контроллера 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
повторно использован или создан новый экземпляр?
- Если это новый экземпляр, что вызывает разрушение первого экземпляра?
- Если он используется повторно, как это работает? (то есть, метод загрузки данных, как представляется, запускается при создании контроллера).