sto imparando direttiva AngularJS, e una cosa che voglio fare è quello di passare qualche variabile $scope.message
nel genitore scope
(un scope
di un controller
), e voglio che sia rinominato param
all'interno dello directive
alert
. Posso fare questo con un ambito isolato:Passo variabile per AngularJS direttiva senza scopo isolato
<div alert param="message"></div>
e definire
.directive("alert", function(){
return{
restrict: "A",
scope: {
param: "="
},
link: function(scope){
console.log(scope.param) # log the message correctly
}
}
})
Ma posso fare questo senza usare ambito isolato? Supponiamo che io voglio aggiungere un altro directive
toast
al <div toast alert></div>
e utilizzare lo stesso param
(mantenendo il 2 vie di associazione dati), ingenuamente mi farà
.directive("toast", function(){
return{
restrict: "A",
scope: {
param: "="
},
link: function(scope){
console.log(scope.param)
}
}
})
Io sicuramente metterò un errore Multiple directives [alert, toast] asking for new/isolated scope on:<div...
Così in generale, la mia domanda è: come rinominare la variabile dell'ambito principale senza un ambito isolato e come condividere le variabili quando due directives
vengono posizionate su un singolo DOM
?
Vuoi 2 direttive per associare alla stessa proprietà padre '$ scope'? –