Чи може хтось, будь ласка, уточнити, що таке життєвий цикл контролера 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
повторно використаний чи створений новий екземпляр?
- Якщо це новий екземпляр, що викликає руйнування першої інстанції?
- Якщо це повторно використовується, як це працює? (тобто метод завантаження даних, як видається, працює при створенні контролера)