我使用ngRoute,具有以下配置:使用ngRoute時,控制器是否被複制?
myApp.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/view1', {
controller:'my1Ctrl',
templateUrl:'views/view1.html'
})
.when('/view2', {
controller:'my2Ctrl',
templateUrl:'views/view2.html'
});
}])
對於此示例的目的,我記錄控制器每一秒的ID。所以,在my1Ctrl控制器,我添加以下代碼:
$scope.f = function(){
console.log('Test Controller, id: ', $scope.$id);
setTimeout($scope.f, 1000);
};
setTimeout($scope.f, 1000);
最後,我啓動我的應用程序,並從廠景瀏覽3次視圖2。在此之後,每一秒,我得到以下日誌:
Test Controller, id: 00A
Test Controller, id: 00I
Test Controller, id: 00E
如果我的測試情況下是不相關的,請告訴我。
我的問題:當ngRoute實例化一個新的控制器時,舊的控制器是被刪除還是仍在內存中?如果是這樣,我可以配置ngRoute重新使用相同的控制器還是破壞舊的?
哦!你是對的,這是範圍id ^我正在考慮它,並很快回來驗證或添加問題。謝謝 – Nicolas
我很高興我幫助:) –
那麼,舊的控制器的範圍保存?即使它不再與控制器連接? – Nicolas