AngularJSコントローラーのライフサイクルは何ですか?
誰かが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、user 1がロードされ、に設定されます$scope。 次に、に移動すると/users/2、ユーザー2が読み込まれます。同じインスタンスがUserEditorCtrl再利用されていますか、それとも新しいインスタンスが作成されていますか? それが新しいインスタンスである場合、最初のインスタンスの破棄をトリガーするものは何ですか? 再利用する場合、これはどのように機能しますか?(つまり、データをロードするメソッドは、コントローラーの作成時に実行されているように見えます)