Я пытался понять разницу между изолированной областью и унаследованной областью действия в директиве. Это пример, который я подготовил, чтобы заставить себя понять:Директивы AngularJS - Изолированный масштаб и унаследованная область
HTML-
<div ng-controller="AppController">
<div my-directive>
Inside isolated scope directive: {{myProperty}}
</div>
<div my-inherit-scope-directive>
Inside inherited scope directive: {{myProperty}}
</div>
</div>
The JS
angular.module("myApp", [])
.directive("myInheritScopeDirective", function() {
return {
restrict: "A",
scope: true
};
})
.directive("myDirective", function() {
return {
restrict: "A",
scope: {}
};
})
.controller("AppController", ["$scope", function($scope) {
$scope.myProperty = "Understanding inherited and isolated scope";
}]);
Выполнение кода с угловыми-1.1.5, она работает как Я ожидал: {myProperty} внутри моей-директивы будет undefined
из-за изолированной области видимости, тогда как для my-inherit-scope-директивы {{myProperty}} будет иметь значение Understanding inherited and isolated scope
.
Но выполнение с помощью Angular-1.2.1 в обоих директивах {{myProperty}} выходов Understanding inherited and isolated scope
.
Все, что у меня отсутствует?
Спасибо @Reto, тогда какая точка изолированной области видимости в v1.2, если она наследует свойство от контроллера. –
Речь идет о шаблоне внутри директивы. Если вы удалите изоляцию области из 'myIsolatedDirective',' myProperty' будет привязан к области контроллера. Я думаю, что поведение в 1.1.x не предназначалось, как заявил Vojta: «Элементы Child, которые определены либо в шаблоне приложения, либо в каком-либо другом шаблоне директив, не получают область выделения. Теоретически никто не должен полагаться на это поведение, поскольку это очень редко - в большинстве случаев директива isolate имеет шаблон ». –
Спасибо @ Рето или объяснение. –