tôi đang học AngularJS chỉ thị, và có một điều tôi muốn làm là để vượt qua một số biến $scope.message
trong các phụ huynh scope
(một scope
của một controller
), và tôi muốn nó được đổi tên thành param
bên trong directive
alert
. Tôi có thể làm điều này với một phạm vi riêng biệt:đèo biến để AngularJS chỉ thị mà không bị cô lập phạm vi
<div alert param="message"></div>
và xác định
.directive("alert", function(){
return{
restrict: "A",
scope: {
param: "="
},
link: function(scope){
console.log(scope.param) # log the message correctly
}
}
})
Nhưng tôi có thể làm điều này mà không cần sử dụng phạm vi bị cô lập? Giả sử tôi muốn thêm một directive
toast
đến <div toast alert></div>
và sử dụng cùng param
(giữ 2 chiều liên kết dữ liệu), ngây thơ tôi sẽ làm
.directive("toast", function(){
return{
restrict: "A",
scope: {
param: "="
},
link: function(scope){
console.log(scope.param)
}
}
})
Tôi chắc chắn sẽ nhận được một lỗi Multiple directives [alert, toast] asking for new/isolated scope on:<div...
Vì vậy, trong tất cả, câu hỏi của tôi là, làm cách nào để đổi tên biến phạm vi gốc mà không có phạm vi phân lập và cách chia sẻ các biến khi hai directives
được đặt trên một đơn DOM
?
Bạn có muốn 2 chỉ thị liên kết với cùng thuộc tính '$ scope' của cha mẹ không? –