Bisakah seseorang menjelaskan apa siklus hidup pengontrol AngularJS?
- Apakah controller merupakan singleton, atau dibuat / dihancurkan sesuai permintaan?
- Jika yang terakhir, apa yang memicu penciptaan / penghancuran controller?
Perhatikan contoh di bawah ini:
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});
});
misalnya:
Dalam contoh di atas, ketika saya menavigasi ke /users/1
, pengguna 1 dimuat, dan diatur ke $scope
.
Kemudian, ketika saya menavigasi ke /users/2
, pengguna 2 dimuat. Apakah instance yang sama UserEditorCtrl
digunakan kembali, atau apakah instance baru dibuat?
- Jika itu contoh baru, apa yang memicu penghancuran contoh pertama?
- Jika digunakan kembali, bagaimana cara kerjanya? (mis., metode untuk memuat data tampaknya berjalan saat membuat controller)
sumber
template: "HTML STRING"
ketika itu adalah file templat yang dimuat seperti async like.