Qualcuno può chiarire qual è il ciclo di vita di un controller AngularJS?
- Un controller è un singleton o creato / distrutto su richiesta?
- In quest'ultimo caso, cosa provoca la creazione / distruzione del controller?
Considera l'esempio seguente:
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});
});
per esempio:
Nell'esempio sopra, quando navigo verso /users/1
, l'utente 1 viene caricato e impostato su $scope
.
Quindi, quando navigo verso /users/2
, viene caricato l'utente 2. La stessa istanza di UserEditorCtrl
riutilizzo o viene creata una nuova istanza?
- Se si tratta di una nuova istanza, cosa provoca la distruzione della prima istanza?
- Se viene riutilizzato, come funziona? (ad es., il metodo per caricare i dati sembra funzionare alla creazione del controller)