What is Directives in AngularJS?

In AngularJS (Angular 1.x), directives are a core concept that allow you to extend HTML by creating custom, reusable components or behaviors. Directives are markers on a DOM element (such as an attribute, element name, comment, or CSS class) that tell AngularJS's HTML compiler ($compile) to attach a specified behavior to that DOM element or even transform it and its children.

There are several types of directives in AngularJS:

  1. Component Directives: These are used to create reusable, self-contained components with their own templates, controllers, and styles. They encapsulate both the UI and the behavior.

                    
                        angular.module('myApp').component('myComponent', {
                            template: '<div>{{ ctrl.name }}</div>',
                            controller: function() {
                              this.name = 'Example';
                            },
                            controllerAs: 'ctrl'
                          });                      
                    
                

    Used in HTML:<my-component></my-component>

  2. Attribute Directives: These modify the behavior or appearance of DOM elements by manipulating their attributes.

                    
                        angular.module('myApp').directive('myDirective', function() {
                            return {
                              link: function(scope, element, attrs) {
                                element.css('color', 'blue');
                              }
                            };
                          });                      
                    
                

    Used in HTML: <div my-directive></div>

  3. Structural Directives: These change the structure of the DOM by adding or removing elements based on conditions.

                
                    angular.module('myApp').directive('myIf', function() {
                        return {
                          transclude: 'element',
                          priority: 600,
                          terminal: true,
                          restrict: 'A',
                          link: function(scope, element, attrs, ctrl, transclude) {
                            var childElement;
                            scope.$watch(attrs.myIf, function(value) {
                              if (value) {
                                if (!childElement) {
                                  transclude(function(clone) {
                                    childElement = clone;
                                    element.after(clone);
                                  });
                                }
                              } else {
                                if (childElement) {
                                  childElement.remove();
                                  childElement = null;
                                }
                              }
                            });
                          }
                        };
                      });                  
                
            

    Used in HTML: &lt;div my-directive&gt;&lt;/div&gt;

Directives in AngularJS were a powerful way to create reusable components, add behavior to DOM elements, and manipulate the DOM. However, in later versions of Angular (2 and above), the concept of directives evolved into components and the Angular architecture underwent significant changes. Components became the primary way to create reusable pieces of UI, simplifying the process of building complex applications.

How To Create SSH Keys with OpenSSH on macOS, Linux, or Windows Subsystem f …

Creating SSH keys with OpenSSH on macOS, Linux, or Windows Subsystem for Linux (WSL) involves a few simple steps. Here's a guide: Open Terminal (macOS/Linux) or WSL (Windows), Generate SSH Key Pair, Generate SSH Key Pair, Verify SSH Key Generation,Vi …

read more

What is Object-Oriented Design? How Many Principles of Object Oriented Desi …

Object-Oriented Design (OOD) is a methodology for designing software systems based on the concept of "objects," which are instances of classes that encapsulate data and behavior. OOD aims to create modular, reusable, and maintainable softwa …

read more