The following are the major features of AngularJS:
AngularJS-based applications can be tested.
Data-binding AngularJS’s most essential feature is data binding, which allows data to be synchronised between the model and view components in the framework.
Services AngularJS comes with a number of built-in services, including $http, which aids in the creation of XMLHttpRequests and AJAX calls.
Scope is a specific object provided by AngularJS that refers to the models and acts as a glue between the view and the controller.
Filters AngularJS includes a number of built-in filters as well as the ability to construct custom filters to help subset array objects and filter depending on certain criteria.
Directives are the markers for DOM elements like as attributes, elements, CSS, and so on. They’re utilised to make custom HTML tags that can be used as widgets. AngularJS has built-in directives like ngBind, ngModel, ngHide, and others, as well as the ability to create user-defined directives for code reuse.
Scopes are AngularJS objects that serve as a link between the view and the controller. They refer to the MVC architecture’s model component. To mirror the DOM structural hierarchy, they’re organised in a hierarchical manner. AngularJS includes a $scope object that contains all of the application’s data as well as its associated methods.
Services are single objects that perform the tasks for which they were built. They communicate with one another and are connected utilising the Dependency Injection principle, which aids the framework in structuring and sharing code across the application. AngularJS comes with a number of built-in services. Custom services, which are more widely utilised by developers, are also supported by AngularJS.
Directives are the most significant AngularJS elements because they represent DOM element markers that provide new functionality to DOM elements such as names, attributes, CSS classes, and comments. They’re used to make custom HTML tags that work in the same way that custom widgets do. AngularJS has directives like ng-model for data binding, ng-repeat for iterating components, ng-app for bootstrapping AngularJS apps, and ng-show, ng-hide for controlling the appearance of DOM elements, among others.
The technique of automatically syncing data between the view and model components is known as data binding. AngularJS accomplishes this by utilising the built-in directives ng-model and ng-bind. This directive guarantees that the model is the view’s single source of truth and that the view synchronises with the model at all times. Data binding can be done in two ways:
One-Way Data Binding: Changes in the model are reflected in the view, but changes in the view to the data are not. The binding connects the model and the view in just one direction. The ng-bind directive is used to accomplish this
Two-Way Data Binding: As the name implies, changes in the model are reflected in the view, and changes in the view are reflected in the model. The ng-model directive is used to accomplish this.
Interpolation is the process of tying data together by embedding phrases in attribute and text nodes. During the compilation process, the compiler performs the duty of matching the text and characteristics. Internally, AngularJS checks for embedded expressions in markup using the $interpolate built-in service, and if any are found, they are updated and registered as watches.
The AngularJS library is bound to the HTML page using the script> tag in the HTML head section, and then the AngularJS application is bootstrapped using the ng-app directive, as seen below.
<html> <head> <script src = “https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js”></script> <!–Other libraries–> </head> <!–ng-app attribute to bootstrap AngularJS application–> <body ng-app = “myApp”> <!–Web page elements–> </body> </html>
The scope object formed on the DOM element containing the ng-app directive for bootstrapping the AngularJS application is referred to as $rootScope. This object can be found throughout the entire AngularJS application. In the entire programme, there can only be one $rootScope object. All additional scope objects are known as the $rootScope object’s child scopes.
If the condition supplied by the ng-if directive is not met, the DOM element section is not rendered. If this is not rendered, the element’s scope will be destroyed.
If the condition stated within the ng-show directive is not met, the DOM element is rendered but the display is hidden (by adding the ng-hide class to that DOM element).
An AngularJS module is nothing more than a container for keeping track of various components of an AngularJS application, such as controllers, filters, directives, services, and so on, as well as a location to create dependencies between them. It can be compared to the Java main() function. The module() method of the angular object can be used to construct an AngularJS module.
You’re defining an app module for the myFirstApp application, for example, in the code below. Within the square brackets, you can define all of this module’s dependents, if any exist.
var app = angular.module(‘myFirstApp’, );
|The expressions are evaluated against the scope object that they are part of.||The expressions are evaluated against the global window scope.|
There are five significant aspects of the scope object.
It gives the app a context against which the AngularJS expressions may be evaluated.
Using the $watch observer service, it is possible to observe model changes within them.
The scope objects include APIs like $apply that help in propagating model changes from sources like controllers, services, and various AngularJS event handlers around the application into the display.
Scope objects inherit the parent’s properties and provide you access to model properties that are shared.
Scopes can be nested to separate directives and AngularJS components.
<select ng-options="employee.name for employee in employeeList"> </select>
The given piece of code would throw syntax error because in AngularJS it is not possible to use ng-options directives without using the ng-model directive. The ng-options dynamically generate the
<option> elements for the given
<select> element by evaluating the expression within it. Now upon selecting the element from the dropdown, the option value needs to be bound to a model which is defined by the ng-model directive. Absence of the ng-model results in error.