Transclude là một thiết lập để nói với góc cạnh để nắm bắt mọi thứ được đưa vào trong lệnh trong đánh dấu và sử dụng nó ở đâu đó (nơi thực sự ng-transclude
là tại) trong mẫu của chỉ thị. Đọc thêm về điều này trong phần Tạo Chỉ thị Kết hợp các phần tử khác trên tài liệu của các chỉ thị .
Nếu bạn viết một lệnh tùy chỉnh, bạn sử dụng ng-transclude trong mẫu lệnh để đánh dấu điểm bạn muốn chèn nội dung của phần tử
angular.module('app', [])
.directive('hero', function () {
return {
restrict: 'E',
transclude: true,
scope: { name:'@' },
template: '<div>' +
'<div>{{name}}</div><br>' +
'<div ng-transclude></div>' +
'</div>'
};
});
Nếu bạn đặt điều này trong đánh dấu của bạn
<hero name="superman">Stuff inside the custom directive</hero>
Nó sẽ hiển thị như sau:
Siêu nhân
Thứ bên trong chỉ thị tùy chỉnh
Ví dụ đầy đủ:
Index.html
<body ng-app="myApp">
<div class="AAA">
<hero name="superman">Stuff inside the custom directive</hero>
</div>
</body>
jscript.js
angular.module('myApp', []).directive('hero', function () {
return {
restrict: 'E',
transclude: true,
scope: { name:'@' },
template: '<div>' +
'<div>{{name}}</div><br>' +
'<div ng-transclude></div>' +
'</div>'
};
});
Output markup
Hình dung: