Рассмотрим следующий пример:создание Scope и Batarang
HTML
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.min.js"></script>
<meta charset=utf-8 />
<title>Exploring directives</title>
</head>
<body>
<my-directive>
Some text
</my-directive>
{{Info.Version}}
<script type="text/ng-template" id='my-directive.html'>
<div>Hello, {{Info.Version}}</div>
</script>
</body>
</html>
JS
var app = angular.module('myApp', []);
app.run(function($rootScope) {
$rootScope.Info = {};
$rootScope.Info.Name = 'rootScope';
$rootScope.Info.Version = '1.0.0.1';
});
app.directive('myDirective', function() {
return {
restrict: 'E',
templateUrl: 'my-directive.html',
scope: false
};
});
Batarang
Из того, что я видел, никогда не отображается $ rootScope (но я предполагаю, что это будет маркирован Scope (001), если он был).
Когда я изменить область, чтобы верно в JS:
app.directive('myDirective', function() {
return {
restrict: 'E',
templateUrl: 'my-directive.html',
scope: true
};
});
Это появляется что $ rootScope выталкивается вниз Scope (002):
Может кто-нибудь объяснить, что происходит? Почему выглядит $ rootScope? Что над ним тогда? Вот jsbin ссылка: http://jsbin.com/udALigA/1/
Вы когда-нибудь понять, почему rootScope не появляется, или почему он показывает с идентификатором 002 вместо 001? – JohnGalt
Еще не хотел услышать ответ. –