Transclude เป็นการตั้งค่าให้บอกมุมเพื่อจับทุกสิ่งที่ใส่ไว้ในคำสั่งในมาร์กอัปและใช้ที่ใดที่หนึ่ง(ที่จริง ๆ แล้วng-transclude
เป็นที่)ในเทมเพลตของคำสั่ง อ่านข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้อยู่ภายใต้การสร้างคำสั่งที่ห่อองค์ประกอบอื่น ๆส่วนที่เกี่ยวกับเอกสารคำสั่ง
หากคุณเขียนคำสั่งที่กำหนดเองคุณใช้ ng-transclude ในเทมเพลตคำสั่งเพื่อทำเครื่องหมายจุดที่คุณต้องการแทรกเนื้อหาขององค์ประกอบ
angular.module('app', [])
.directive('hero', function () {
return {
restrict: 'E',
transclude: true,
scope: { name:'@' },
template: '<div>' +
'<div>{{name}}</div><br>' +
'<div ng-transclude></div>' +
'</div>'
};
});
ถ้าคุณใส่สิ่งนี้ในมาร์กอัปของคุณ
<hero name="superman">Stuff inside the custom directive</hero>
มันจะปรากฏขึ้นเช่น:
ยอดมนุษย์
เนื้อหาภายในคำสั่งที่กำหนดเอง
ตัวอย่างเต็มรูปแบบ:
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
เห็นภาพ: