AngularJS, a popular JavaScript framework, provides a feature called directives that allows developers to extend HTML with new attributes or elements. Directives are a powerful way to create reusable components in your AngularJS applications. This tutorial will guide you through the basics of creating custom directives in AngularJS.
Table of Contents
ToggleUnderstanding Directives
In AngularJS, a directive is a marker on a DOM element that tells AngularJS’s HTML compiler to attach a specified behavior to that DOM element. Directives can be used to create custom HTML tags that serve as new, custom widgets. They can also be used to “decorate” elements with behavior and manipulate DOM attributes in interesting ways.
Creating a Basic Directive
To create a directive in AngularJS, you use the .directive
function. Here’s the basic syntax:
var testApp = angular.module('testApp',[]);
testApp.directive('myDirective',function(){
return {
//OPTIONS
}
});
In this example, testApp
is your Angular application or module, and myDirective
is the name of your directive. Notice that we use camel case for the directive’s name.
Invoking Your Directive
You can invoke your directive in your HTML in three ways: as an element, as an attribute, or as a class. Here’s how you can do it:
<!-- As an element -->
<my-directive></my-directive>
<!-- As an attribute -->
<div my-directive></div>
<!-- As a class -->
<div class="my-directive"></div>
Configuring Your Directive
You can configure your directive by returning an object with various options inside the directive function. Here’s an example:
return {
restrict:'AEC',
template:'My Directive: '
}
In this example, restrict: 'AEC'
specifies that the directive can be invoked as an attribute (A
), an element (E
), or a class (C
). The template: 'My Directive: '
line specifies the HTML that will be inserted into the DOM when the directive is invoked.
Using templateUrl Instead of Template
Instead of using the template
option to specify your directive’s HTML, you can use the templateUrl
option to specify the URL of an HTML file that contains your directive’s template. This is useful when your directive’s HTML is complex and needs to be in a separate file.
Accessing the Controller’s Scope
Directives can access the scope of the controller in which they are invoked. This allows directives to interact with the data and functions defined in the controller. Directives can also have their own separate controllers, which allows for more modular and reusable code.
Conclusion
Custom directives in AngularJS are a powerful feature that allows developers to create reusable components and extend HTML in interesting ways. By understanding how to create and use custom directives, you can write more modular and maintainable AngularJS code.