Làm thế nào để ngăn chặn chỉ thị với transclude để tạo ra phạm vi mới?AngularJS chỉ thị transclude phạm vi = sai?
Điều này jsfiddle Tôi không thể ràng buộc bất kỳ điều gì do các phạm vi mới được minh họa bằng đường viền màu đỏ.
Html:
<div ng-app="components">
<input ng-model="var">
<block>
123
<input ng-model="var">
</block>
</div>
JavaScript:
angular.module('components', []).directive('block',function(){
return{
scope:false,
replace:true,
restrict:"E",
transclude:true,
template:'<div class="block" ng-transclude></div>',
link:function(scope, el, attrs, ctrl){
}
}
});
CSS:
.ng-scope{
border:1px solid red;
margin:10px;
}
Cảm ơn. Tôi đã làm một ví dụ đơn giản hơn [jsfiddle] (http://jsfiddle.net/RHLzK/5/). Nhưng đó có phải là một lỗi hay nó là một tính năng? – Jossi
Hành vi bình thường đối với phạm vi con (chúng kế thừa từ nguyên mẫu từ phạm vi gốc, có nghĩa là bạn có thể đọc từ phạm vi gốc, nhưng ngay khi bạn viết, nó nằm trong phạm vi con - trừ khi bạn sử dụng obj trên phạm vi cha mẹ workaroud), bạn có lẽ có thể xem mã nguồn của chỉ thị ng-transclude, sao chép nó và tạo của riêng bạn với một phạm vi: tùy chọn sai. – Guillaume86
Các vấn đề xuất hiện trở lại nếu tôi bắt đầu sử dụng transclude được đặt làm 'phần tử'. Có ai có bất kỳ ý tưởng tại sao nó không hoạt động ngay bây giờ. Demo: http://plnkr.co/edit/Bv1kFQtzdVzsasHTUrgf?p=preview –