2013-10-09 6 views
0

Просто для того, чтобы понять немного больше наследования, после чтения this post У меня есть вопрос. Почему, когда мы объявляем ng-app и ng-controller по одному и тому же тегу, область этого контроллера не равна rootScope?Application 'main controller' scope

<html ng-app="myApp" ng-controller="MainCtrl"></html> 

app.controller('MainCtrl', function($scope , $rootScope) { 

    console.log(angular.equals ($scope , $rootScope)); // false 

}); 

Тестирование: http://plnkr.co/edit/7mAFeZ?p=preview

ответ

1

Каждый контроллер определяет свою собственную вложенную сферу которой $rootScope является (конечной) предка. Если вам немного интереснее, ознакомьтесь с определением директивы ngController. Он устанавливает новую область (scope: true) и устанавливает себя как контроллер.

https://github.com/angular/angular.js/blob/master/src/ng/directive/ngController.js#L164

+0

я вижу .. Это означает, что нет никакой связи между„корневым“тегом и„корнем“рамкой .. – Cherniv

1

Угловые всегда будет создавать свой собственный $ rootScope независимо от ваших заявлений контроллера.

Объем от вашего нг-контроллера будет наследовать от $ rootScope, как если бы вы назвали $ rootScope. $ Новый()

+0

Спасибо, ссылка KevinStone»на самом деле объясняет этот вопрос,' 'ngController' имеет область применения: true' – Cherniv

Смежные вопросы