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