We can also make our own custom directives, in order to make the html code even more expresive.
There are several kinds of Custom Directives
1. Template expanding Directives
- define a custom tag or attribute that is expanded or replaced
- can include Controller logic, if needed
Directives can also be used for
- Expressing complex UI
- Calling events and registering event handlers
- Reusing common components
Example of an Element Directive
Custom Element Directive
<product-title></product-title>
Within the app.js file, please checkt that dash in HTML translates to camelCase in javaScript
app.directive('productTitle', function(){ return { restrict: 'E', templateUrl: 'product-title.html' }; });
restrict : 'E' is the type of Directive (E for Element)
emplateUrl: 'product-title.html' is the URL of a template
Within the product-title.html
<h3> {{product.name}} <em class="pull-right">$250.00</em> </h3>
Example of an Attribute Directive
Custom Attribute Directive
<h3 product-title></h3>
Within the app.js file, please checkt that dash in HTML translates to camelCase in javaScript
app.directive('productTitle', function(){ return { restrict: 'A', templateUrl: 'product-title.html' }; });
restrict : 'A' is the type of Directive (A for Attribiut)
emplateUrl: 'product-title.html' is the URL of a template