Я изучаю директиву AngularJS, и одна вещь, которую я хочу сделать, - передать некоторую переменную $scope.message
в родительском scope
(a scope
of controller
), и я хочу, чтобы она была переименована в param
внутри directive
alert
. Я могу сделать это с изолированной областью:
<div alert param="message"></div>
и определите
.directive("alert", function(){
return{
restrict: "A",
scope: {
param: "="
},
link: function(scope){
console.log(scope.param) # log the message correctly
}
}
})
Но могу ли я сделать это без использования изолированной области? Предположим, я хочу добавить еще directive
toast
в <div toast alert></div>
и использовать те же param
(сохраняя привязку двухсторонней привязки), наивно сделаю
.directive("toast", function(){
return{
restrict: "A",
scope: {
param: "="
},
link: function(scope){
console.log(scope.param)
}
}
})
Я обязательно получу ошибку Multiple directives [alert, toast] asking for new/isolated scope on:<div...
Итак, во-первых, мой вопрос заключается в том, как переименовать родительскую переменную области без изолированной области и как обмениваться переменными, когда два directives
помещаются в один DOM
?