Có thể ai đó vui lòng làm rõ vòng đời của bộ điều khiển AngularJS là gì?Vòng đời của bộ điều khiển AngularJS là gì?
- Bộ điều khiển có đơn hoặc được tạo/hủy theo yêu cầu không?
- Nếu sau này, điều gì kích hoạt việc tạo/hủy bộ điều khiển?
xem xét ví dụ dưới đây:
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});
});
ví dụ:
Trong ví dụ trên, khi tôi tìm đến /users/1
, sử dụng 1 được nạp, và thiết lập để $scope
.
Sau đó, khi tôi điều hướng đến /users/2
, người dùng 2 được tải. Có cùng một phiên bản của UserEditorCtrl
được sử dụng lại hoặc là một phiên bản mới được tạo không?
- Nếu đó là phiên bản mới, điều gì kích hoạt sự phá hủy phiên bản đầu tiên?
- Nếu được sử dụng lại, tính năng này hoạt động như thế nào? (nghĩa là, phương pháp tải dữ liệu xuất hiện để chạy khi tạo bộ điều khiển)
Ngày nay mã phá hủy phạm vi $ scope tại https://github.com/angular/angular.js/blob/65f5e856a161e7c91b9ebde1360242dc704d0510/src/ngRoute/directive/ngView.js#L179. Rất hữu ích, cảm ơn! – w00t
viewContentĐược tải chỉ hoạt động nếu bạn sử dụng hết thời gian chờ vì nó được gửi đi ngay trước khi mẫu được tải ... tài liệu nói ngược lại, nhưng chúng đang tham chiếu đến nguyên mẫu ':" HTML STRING "' khi nó là tệp mẫu được tải async thích. – user3338098