"Сфера" в функции связывания директив - это корневая область, а не область действия директивы.
У меня есть директива следующим образом
.directive('ticketingChat', function() {
return {
restrict: 'E',
templateUrl: '/Reply/ReplyScreen', //cshtml from MVC page
controller: 'TicketingChatController',
link: function (scope, el, attr) {
scope.writingTo = "Hey there!";
}
}
})
Я думал, что это создаст свою собственную область, а "область действия" позволит мне получить к ней доступ.
Вместо этого нг-инспектор показывает мне, что:
"Сфера" на самом деле является корневой сферой. Как я могу заставить директиву создать свою собственную дочернюю область? И как я могу получить доступ к этой области из функции связывания?
1 ответ
Решение
Настройка scope: true
в определении директивы объект заставит AngularJS создать наследующую дочернюю область. настройка scope
для объекта создаст изолированную дочернюю область.
Например:
.directive('ticketingChat', function() {
return {
restrict: 'E',
templateUrl: '/Reply/ReplyScreen',
controller: 'TicketingChatController',
scope: true,
link: function (scope, el, attr) {
scope.writingTo = "Hey there!"; // This will be set on the child scope because we have scope: true.
}
}
})
Смотрите документы для более подробной информации о scope
приписывать.