我正在学习AngularJS指令,我想做的一件事是将一些变量$scope.message
传递到父级scope
(一个controller
的scope
),并且我希望它在alert
指令内被重命名为param
。我可以通过隔离作用域来实现:
<div alert param="message"></div>
并定义
.directive("alert", function(){
return{
restrict: "A",
scope: {
param: "="
},
link: function(scope){
console.log(scope.param) # log the message correctly
}
}
})
但我能否在不使用隔离作用域的情况下完成这个操作?假设我想要添加另一种指令 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...
所以总体来说,我的问题是,如何在没有隔离作用域的情况下重命名父级作用域变量,并且当两个指令
放置在单个DOM
上时如何共享变量?
$scope
属性吗? - Davin Tryon