я думал, что я освоил изолированные области с пользовательскими директивами, а затем нажмите эту проблему, которую я изо все силы с 3 часов в настоящее время:Как установить параметры области действия с изолированной сферой
После того, как изолированная сфера создаются для директивы я думал, что вы можете установить любые данные области (в данном случае greeting
) в функции controller
или link
. Но ссылка {{greeting}}
в HTML не работает, хотя greeting
отображается в области при проверке через консоль?
Я думал, что новая изолированная область будет назначена директиве myDir
, и все, что определено в этой области, будет доступно в содержимом HTML <my-dir>
. Очевидно, у меня есть разрыв в понимании.
Любые идеи, пожалуйста?
Plunker: here
HTML:
<my-dir>
Greeting: {{greeting}}
</my-dir>
JS:
var app = angular.module('myApp', []);
app.directive('myDir', function() {
return {
restrict: 'EA',
scope: {},
controller: ['$scope', function ($scope) {
$scope.greeting = 'Hello';
//this.greeting = 'Hello';
}],
link: function(scope, element, attrs){
//scope.greeting = 'Hello';
}
};
})
Да, это будет работать, но я хотел бы выделить сферу, а не наследуют/доля родительской сферы, которая в данном случае является корнем я считаю. –
ах, так как DOM уже был предоставлен в область видимости для той части DOM, которую нельзя изменить, правильно. Поэтому, возможно, я мог бы использовать трансцендентный объект определения для клонирования и повторного ввода содержимого, но с новым контентом, ссылающимся на новую область? –
Извините, мой последний комментарий был не очень хорошо написан, и по какой-то причине он не позволит мне редактировать. Я хотел спросить, может ли использование transclude быть решением? –