2015-04-29 6 views
0

Почему я могу использовать ng-bind за пределами ng-app и ng-controller при использовании $rootScope.variable?Почему я могу использовать `ng-bind` вне` ng-app`?

faraWorkspaceApp.run(function ($rootScope, $location, $state) { 
    $rootScope.$on('$stateChangeSuccess', function (e, toState, toParams 
                , fromState, fromParams) { 
     $rootScope.pageTitle = toState.pageTitle; 
    }); 
}); 

<span ng-bind="pageTitle"></span> 
<div ng-app> 
</div> 
+0

Вы могли бы воспроизвести проблему с plunkr или скрипкой? –

+0

ng-app - это директива для корневого элемента. Angularjs будет обрабатывать только элемент в ng-app – hutingung

+0

Я думаю, вы должны поместить ng-app в тег , так как он позволит вам использовать угловую структуру js для всего приложения. Невозможно использовать компонент вне границ его рамки. $ rootScope позволяет использовать переменную во всех контроллерах, службах, фабриках, фильтрах и конфигурациях, но это не значит, что вы можете использовать ее за пределами рамки –

ответ

1

$ scopes привязаны к контроллеру, без контроллера они не могут быть введены в ваш вид. $ rootScope привязан к вашему ng-приложению, поэтому на самом деле вы не можете использовать его вне ng-app, но вы можете использовать его вне ng-контроллера.

$ scopes имеет модель наследования, что означает, что дочерние $ scopes автоматически получат значение родительской переменной $ scope.