Я изучаю директиву 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?