ใน AngularJS Framework เราสามารถสร้าง Directive ขึ้นมาเองได้

โดยชนิดของ Directive (restrict) มี 2 ชนิด
  • Element Directive
  • Attribute Directive

ในการกำหนดชื่อ Directive จะกำหนดด้วยหลักการของ camelCase

ส่วนในการเรียกใช้ใน HTML จะต้องเรียกใช้ด้วยหลักของ dash

Element Directive

การกำหนด Directive แบบ Element จะมีลักษณะเป็น tag ของ HTML

เช่นเราสร้าง Directive ชนิด element ชื่อ someElement

angular.directive('someElement', function() {
	return {
		restrict: 'E'
	};
});

เมื่อเรียกใช้ใน html เราจะกำหนด <some-element> โดยใช้หลัก dash ของ html

<some-element></some-element>

Attribute Directive

การกำหนด Directive แบบ Attribute จะมีลักษณะเป็น Attribute ใน tag ของ HTML

เช่นเราสร้าง Directive ชนิด Attribute ชื่อ someAttr

angular.directive('someAttr', function() {
	return {
		restrict: 'A'
	};
});

เมื่อเรียกใช้ใน html จะเพิ่ม Attribute ไปใน tag ที่เราต้องการ

<div some-attr></div>
<div some-attr=""></div>

ข้อดี - ข้อเสียของ Element Directive

ข้อดี

  • ง่ายต่อการจัดการส่วนต่างๆในหน้าเว็บ เข้าใจได้ง่าย

ข้อเสีย

  • ไม่สามารถใช้ใน IE เวอร์ชั่นเก่าได้ เนื่องจาก IE จะไม่เห็นว่ามันเป็น tag

ข้อดี - ข้อเสียของ Attribute Directive

ข้อดี

  • สามารถใช้งานได้กับทุก browser

ข้อเสีย

  • ในกรณีที่มี attribute มากๆ อาจจะทำให้โค้ดอ่านยาก