我注意到在我的一個控制器中,我獲得了$ rootScope和$ scope注入,並且它們都指向相同的對象。角根範圍和範圍問題
此外,在我所有的其他控制器中,$ scope對象是共享的。所以無論何時我注入作用域,它都包含在迄今爲止已經實例化的所有其他控制器中分配給它的屬性/方法。
這不是我從一開始就開發的應用程序,它非常龐大。我之前沒有看到過這種行爲,我不知道從哪裏開始診斷。任何想法是什麼造成這種情況?
,我們正在建立我們的控制器的通道/指令是非常標準的,它看起來像這樣:
angular.module('myApp')
.directive('mainNav', function() {
return {
restrict: 'A',
templateUrl: 'scripts/directives/mainNav/mainNav.html',
controller: 'mainNavCtrl',
replace: true,
link: function(scope, element) {
//Do DOM-related stuff
});
}
};
})
.controller('mainNavCtrl', function($rootScope, $scope, $state) {
//Do controller stuff
});
我們還可以配置我們的應用程序如下:
angular.module( '對myApp',[ 'ui.router', 'kendo.directives'])
的.config(函數($ stateProvider,$ urlRouterProvider){$ urlRouterProvider.otherwise( '/');$stateProvider .state('app', { url: '/', templateUrl: 'views/app.html', resolve: { //Fetch stuff } }) ; });
針對Kursad Gulseven的評論,這是我所看到的在Batarang:
ID爲002的範圍被傳遞作爲$範圍和$ rootScope到第一控制器。當屬性添加到$ scope時,它們顯示在$ rootScope上。然後所有其他控制器正在接收ID爲00A的範圍。因此,添加到$ scope的這些控制器中的屬性對於獲得$ scope注入的所有其他控制器都是可見的。
子範圍繼承父範圍的屬性,除非被覆蓋。也許這就是發生了什麼事。 – Shomz 2014-10-31 22:12:23