Tôi đang đưa ra một thử đầu tiên tại AngularJS chỉ thị tùy chỉnh.AngularJS - Truy cập phạm vi cô lập trong chức năng liên kết của chỉ thị
Tôi đang gặp sự cố khi sử dụng (hoặc hiểu ...) phạm vi phân lập trong hàm liên kết của chỉ thị.
Đây là mã của phần này của ứng dụng của tôi:
view.html
...
<raw-data id="request-data" title="XML of the request" data="request">See the request</raw-data>
...
request
là một biến được công bố trong phạm vi của viewCtrl chứa xml-chuỗi các yêu cầu.
rawData.js
directives.directive('rawData', function() {
return {
restrict : 'E',
templateUrl : 'partials/directives/raw-data.html',
replace : true,
transclude : true,
scope : {
id : '@',
title : '@',
data : '='
},
link : function($scope, $elem, $attr) {
console.log($scope.data); //the data is correclty printed
console.log($scope.id); //undefined
}
};
});
nguyên data.html
<div>
<!-- Button to trigger modal -->
<a href="#{{id}}Modal" role="button" class="btn" data-toggle="modal" ng-transclude></a>
<!-- Modal -->
<div id="{{id}}Modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="{{id}}Modal" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">{{ title }}</h3>
</div>
<div class="modal-body">
<textarea class="input-block-level" rows="10">{{ data }}</textarea>
</div>
<div class="modal-footer">
<!-- <button class="btn" ng-click="toggleTagText('')">{{'cacher'}} l'image</button> -->
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Fermer</button>
</div>
</div>
</div>
Tôi không hiểu tại sao các ID được correclty hiển thị khi pops phương thức, nhưng khi tôi cố gắng console.log()
nó, giá trị của nó là không xác định.
Có thể tôi đã sai với giá trị phạm vi bị cô lập (=
và @
).
Cảm ơn bạn đã đọc. :)
Đây là tổng số phỏng đoán, nhưng là "id" đặc biệt bằng cách nào đó vì "id" một phần cơ bản của DOM và Angular sẽ không ánh xạ nó vào chỉ thị của bạn đúng cho lý do đó? Bạn đã thử đổi tên thuộc tính đó để xem nó có giúp nó hoạt động tốt hơn không? – blaster
Giúp rất nhiều nếu bạn có thể đặt một câu đố (jsfiddle.com/plnkr.co). –
@blaster: Tương tự đã xảy ra với "tiêu đề" và nó không phải là một sự ủng hộ cơ bản của DOM. :) – pdegand59