क्या कोई कृपया स्पष्ट कर सकता है कि 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
पुन: उपयोग की गई एक ही आवृत्ति है , या एक नया उदाहरण बनाया गया है?
- यदि यह एक नया उदाहरण है, तो पहले उदाहरण के विनाश को क्या ट्रिगर करता है?
- यदि इसका पुन: उपयोग किया जाता है, तो यह कैसे काम करता है? (यानी; डेटा लोड करने की विधि कंट्रोलर के निर्माण पर चलती है)