Vì vậy, AngularJs
không chấp nhận thuộc tính Replace
của chỉ thị. referenceAngularJS Chỉ thị tài sản: Thay thế không được dùng nữa - Tương đương?
bối cảnh:
.directive('myDir', function($compile) {
return {
restrict: 'E',
template: '<div>{{title}}</div>'
}
});
này sẽ ouput:
<my-dir>
<div> some title </div>
</my-dir>
Vì vậy, Replace
sẽ thay thế <my-dir></my-dir>
với template
. Tương đương những ngày này là gì? Hoặc là nó chỉ sử dụng một chỉ thị với restrict: 'A'
.
Tôi tạo ra này:
.directive('myDir', function($compile) {
return {
restrict: 'E',
template: '<div>{{title}}</div>',
link: link
};
function link(scope, iElem, IAttr, ctrl, transcludeFn) {
var parent = iElem.parent();
var contents = iElem.html();
iElem.remove();
parent.append($compile(contents)(scope));
}
});
mà sẽ đầu ra:
<div> some title </div>
Điều bạn đã làm sẽ hoạt động tốt, vì tôi chắc chắn bạn đã biết. Thấy như là không được chấp nhận trong phiên bản 2.0, tôi thực sự sẽ không lo lắng về việc không sử dụng nó cho thời điểm này là sự khác biệt giữa hai sẽ khá đáng kể. Google cũng nhanh chóng đề xuất rằng các tài liệu đã lỗi thời, nó không bị xóa - https://github.com/angular/angular.js/commit/eec6394a342fb92fba5270eee11c83f1d895e9fb#commitcomment-8124407 –
@DanielEdwards oh đủ công bằng, hãy hét to! Tôi cũng có thể đặt đó là câu trả lời. Hoặc bạn có thể –
Đây không phải là một bản sao chính xác nhưng câu hỏi này có câu trả lời phù hợp: http://stackoverflow.com/questions/16496647/replace-ng-include-node-with-template –