What is AngularJS. Why AngularJS is the most preferred framework?

Maria Mincey 12th Jul 2020

AngularJS is a JavaScript framework that has lately been covering a lot of ground that HTML left under-utilized or uncovered.

AngularJS has been immensely successful in raising the HTML functionalities to several notches above than its defaults. It has added new dimensions to how we develop and work with documents and apps, equipping them with much more versatility. That said, it would be a mistake to assume that AngularJS ditches the HTML features. Rather, it takes them along developes them into something bigger and better.

Understanding the Basics

AngularJS is constituted of several elements that combine to give it such a feature-rich characteristic. Its various functions give it a remarkable sense of structure, let's throw some light on the same:

  • HTML and a lot of markup combine to create the AngularJS templates
  • HTML features are made more impactful and customized by making use of the directives that equip them with very specific behaviors.
  • Model serves as the communication interface between the framework and the user.
  • Every expression has a scope within which it can have the allowed access to variables.
  • The parsing of the templates is performed by the Complier.
  • Filter is used to format the expression values so that the user has a more uncluttered view of the display.
  • View represents the DOM elements visible to the end user
  • Data binding makes model and view are in sync with each other.
  • Controller puts forth the logic for the View to perform its function.
  • For a smooth execution, the different objects and functions should interact uninterruptedly with each other, and that's precisely why we have Dependency injection for. It provides that uninterrupted communication channel.
  • Injector is a part of dependency injection.
  • The Module contains the different elements that characterize a standard app. So, essentially, the Module contains filters, controller, directives, etc.
  • The business logic is represented by Service.

A Basic AngularJS Example

Here is how the most basic AngularJS code looks like:

<!DOCTYPE html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<div ng-app="">
<p>Name: <input type="text" ng-model="name"></p>
<p ng-bind="name"></p>

To explain the different parts of the code:

  • AngularJS swings into action immediately after the web page is loaded.
  • ng-app tells AngularJS that the <div> element defines how the AngularJS application will be executed.
  • ng-model tags the input field value with the variable name of the application.
  • Ng-bind tags the innerHTML of the <p> element with the name of the application variable.


For you to get a deeper understanding, here is an example in which we create a form that calculates the invoice cost and displays them in different currencies:

<div ng-app ng-init="qty=2;cost=3">
Quantity: <input type="number" ng-model="qty">
Costs: <input type="number" ng-model="cost">
<b>Total:</b> {{qty * cost | currency}}

Let's add add the UI logic to our code via the Controllers:

angular.module('invoice1', [])
.controller('InvoiceController', function() {
this.qty = 4;
this.cost = 6;
this.inCurr = 'EUR';
this.currencies = ['USD', 'EUR', 'CNY'];
this.usdToForeignRates = {
USD: 3,
EUR: 2.65,
CNY: 18.71

this.total = function total(outCurr) {
return this.convertCurrency(this.qty * this.cost, this.inCurr, outCurr);
this.convertCurrency = function convertCurrency(amount, inCurr, outCurr) {
return amount * this.usdToForeignRates[outCurr] / this.usdToForeignRates[inCurr];
this.pay = function pay() {

Now, let us try and move the logic from InvoiceController to a service. What it does is that it goes on to enhancing the comprehensibility and usability of our code. This is how we perform the migration in our code:

angular.module('finance2', [])
.factory('currencyConverter', function() {
var currencies = ['USD', 'EUR', 'CNY'];
var usdToForeignRates = {
USD: 3,
EUR: 2.65,
CNY: 18.71
var convert = function (amount, inCurr, outCurr) {
return amount * usdToForeignRates[outCurr] / usdToForeignRates[inCurr];

return {
currencies: currencies,
convert: convert

There is also the scope of leveraging the dependency injection feature in order to have more control over function and object building.

AngularJS Can Help You Be Most Accurate While Serving the Clients

The fact remains that writing code for DOM and AJAX turns out to be a highly demanding task since this code is too complex and too long. But with, the code becomes more organized and as a result, you are better equipped to manage the building process of CRUD applications.

When you are out developing the CRUD applications, you are welcomed by a huge array of inputs and assistive functions in the form of  data binding, template directives, dependency injections and so on. With Angular, you have a more concrete conceptualization to how you are going about developing the apps.

Better MVC Execution

In Angular, you are only expected to break your app into different MVC components and then, Angular takes over. No need for you to rewrite and reshape the codes.

The Behavior Defined by Directives Further Add to the Beauty of AngularJS

In one line, it adds remarkably to the overall functionality of your HTML and lets us create the HTML elements of our choice.

AngularJS is going through several reinventions consistently. And we can only expect this framework to get even better with time.

Authored By Maria Mincey

Also on DiscussDesk