0
расслоении плотной
<form id="form1" runat="server" ng-app="myapp">
Parent Scope {{X}}
<br />
<div my-customer>
<div ng-init="X ='Hello World'">
ISOLATED SCOPE {{X}}
</div>
</div>
</form>
Директивыизолят Scope в угловой
angular.module('myapp', [])
.directive('myCustomer',function()
{
return {
restrict: 'A',
scope: {}
}
})
В коде выше, я создал пользовательские директивы с изолированной областью. Переменная X начинается с «Hello World» в изолированном объеме обычая directive.But я получаю ниже Выход
Parent Scope Hello World
ISOLATED SCOPE Hello World
Первая {{X}} должен быть пустым (поскольку пользовательские директивы изолировал сфера) но он имеет то же значение, что и второе {{X}}. Любая идея почему? Версия Angularjs:
AngularJS v1.5.3
Я думаю, что область охвата - понятие угловых, но не html. расположение переменной в html не определяет область действия переменной. в вашем html, если вы определяете 'X' под' ng-app', это будет «Heollo World» независимо от того, где вы его размещаете –
Но когда я устанавливаю область в true, она ведет себя так, как ожидалось. Родительский охват ИЗОЛИРОВАННЫЙ СФЕРА Hello World –
@harmoniemand ответ имеет правильную идею. Я не думаю, что он решает его так, как вы хотите, но он прав, предлагая, чтобы область применения не применялась. Для директив вы склонны использовать шаблоны, а не встраивать DOM. Попробуйте использовать '
Сфера применения просто не применяется в этой точке.
Вы должны использовать опцию шаблона.
источник
2016-05-12 09:42:19 harmoniemand
Я думаю, что использование виновником вашей проблемы нг-инициализации. В своей документации не рекомендуется их использование в этом way
NgInit работает с областью действия на этапе предварительной ссылки с высоким приоритетом и устанавливает значение в область.
источник
2016-05-12 09:44:29 rgo