ใครช่วยอธิบายให้ชัดเจนว่าวงจรชีวิตของคอนโทรลเลอร์ 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
ใช้ซ้ำหรือเป็นอินสแตนซ์ใหม่ที่สร้างขึ้นหรือไม่
- หากเป็นอินสแตนซ์ใหม่สิ่งที่ทำให้เกิดการทำลายอินสแตนซ์แรก
- หากนำมาใช้ซ้ำจะทำงานได้อย่างไร (เช่น. วิธีการโหลดข้อมูลดูเหมือนว่าจะทำงานในการสร้างตัวควบคุม)