Skip to main content

Building Block of Angular

The main building blocks for Angular are modules, components, templates, metadata, data binding, directives, services, and dependency injection.


Below mentioned are the main building blocks of an Angular application: -

Modules group components logically within the project. Angular basically is a modular framework where every block of functionality is encapsulated within a module and exposed outside within the project as a service. There are two types of modules one is encapsulating block of function within a single component and the other is encapsulating block of function within single or group of components by providing exposure in a unified manner via an interface.

Components help in controlling UI block and also it provides data and logic. It represents a unique "View" and "View Model" in MVVM pattern or exactly like what Controllers do in Angular 1. The "View" or Template shows how the complete component will look–like when displayed on the browser. "View Model" has all required logic parts in order to provide "View" with rich functionality and data. The Styles provide the component with a specific look and feel while Metadata ensures connectivity of everything together. Please note that Component Styles are only applied and are limited to the Components only. Along with Template and Metadata, it builds a complete encapsulated & isolated UI unit.

Templates represent a view with syntax in order to improve HTML with Angular functionality like data binding. They simply extend HTML with new syntax and add behavior to it so that interpolation, two-way Databinding can be achieved.

Metadata helps in connecting everything together, a "View" with a "View Model" with Styles. Metadata along with its tag and attributes are responsible to tell Angular that a simple class can become a component when it is decorated by a component decorator. The Component decorator includes a bundle of metadata along with the class which guides Angular how to work and process it in your application at the time of runtime. Some of the Metadata are as follows: -

  1. selector is Metadata which tells Angular which of the custom HTML to be included with the component,
  2. templateURL is the exclusive URL for the template to be used when processing the component,
  3. an array of directives with this kind of Metadata it will tell Angular which other Component(s) or the directives should be included in that component,
  4. an array of styleURLs with this type of Metadata you can easily define customized styles for the component
  5. and with this Metadata an array of providers tells Angular how to inject dependencies (like services we have) in a component or @RouterConfig that helps you to configure routing in your project application.

Databinding helps you to bind data and server interaction between Template and Component building block in a declarative manner. There various types of Databinding available in Angular are interpolation, property binding, event binding, one-way and two-way binding.

Services simply help in making reuse of service. As project becomes bigger naturally more components will add to it and which also will require data to access. So every time making a copy-paste of code it will create single reusable (singleton) data service.

Directives basically command Angular how it has to process DOM. By nature, they are classes which are decorated with the @Directive decorator. There are three types of Directives present in Angular2 –

  1. Components Directive is a unique type of directive which is involved along with Template.
  2. Structural Directive is like *ngFor and *ngIf which enables you to make changes to DOM with the help of adding or by removing nodes.
  3. Attribute Directive helps in adding behavior or do a change in the look or appearance of a specific element just like ngmodel directive which implements two-way data binding is an Attribute Directive.

There are other built-in Directives like ngClass, ngStyle and ngSwitch.

Dependency Injection to inject the necessary dependencies for a given component/service at runtime and provide flexibility, extensibility, and testability to the framework and your application.


Comments

Popular

HTML Basic

HTML (Hypertext Markup Language) Basic What is HTML ? HTML invented by Tim Berners-Lee in 1990. HTML stands for hypertext markup language. Web browsers receive HTML documents from a web server or from local storage and render the documents into multimedia web pages .We can create web page with different elements like audio, video, image, tables, link, list & text etc, with CSS & JavaScript. version of HTML There are 6 version of HTML HTML Version Year HTML 1991 HTML 2.0 1995 HTML 3.2 1997 HTML 4.01 1999 XHTML 2000 HTML 5 2014 (Latest version) Latest version of HTML Latest version of html is HTML 5.0 , in latest version of html provided new tags for multimedia support. Now we are creating web page  index.html  How we can create Web page <!DOCTYPE html> < html > < head > < title > This is my First Web Page </ title > </ head > < body > < h1 > My First heading ...

JavaScript Closure

What is closure? It is my personal experience, I have never understood closure, I have read many articles & have seen many videos. Finally, I understood sometimes we even used a closure without realizing we were using a closure. First, understand the meaning of closure “an act or process of closing something”, now we can relate closure in javascript, closure is an inner function which wraps inside the outer function, which can access outer function scope & global function scope. for scoping you can read my previous blog:- http://uisource.blogspot.com/2018/08/javascript-variable-scoping.html why do we create? Global variables can be made local (private) with closures. To avoid the usage of global variables, use the local variables and wrap your code in the closure. A closure is an inner function that has access to the outer (enclosing) function’s variables—scope chain(Lexical scoping). The closure has three scope chains: it has access to its own scope (variables define...