Design a site like this with
Get started

Build Custom Attribute Directive with Angular JS


Angularj JS new version is using nodejs for setting up application and for running applicaion you will also need any code editor tool.

For current setup we are using visual code studio

Kindly down load latest version of nodejs and visual code studio on your machine and complete setup

Node Installation

1 Go to this site and download latest version of node js

2) Once installed open command prompt and type “node”

you will be able to see version on node js that means nodejs installed

Install Visual Studio

1 Go to this site and download latest version of

2. Once installed on windows go to search menu and type visual you will be able to see its installed like below screenshot

3.Open Application and you will be able to see below screen

4) Select folder from file menu for your project

5) Open Terminal from Terminal option

Install Angular cli

Run below command

  npm install -g @angular/cli

once its installed type below command in terminal to verify installation

Create a workspace and initial application

Run below command

  ng new my-app

it will ask for angular routing =>select yes

then select css as style sheer language like below screenshot

Press Enter and it will generate your project

in below diagram 1) Creating html and components from schematics 2) DOwnloading required packages you can see under node_modules folder

Run the application

Run below command

traverse to application folder

 cd my-app  

run below command to start and open application

ng serve –open

this command will compile app and launch it with webpack on http://localhost:4200/

Congrats your first application is running and working fine

Creating Hello World

In angular data binding is happening between html and component classes .

Here we will declare one variable in component file and same will be visible on UI .

  1. Delete everything from app.component.html.

2. Declare variable in app.component.ts


import { Component } from '@angular/core';

  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
export class AppComponent {
  title = 'my-app';
  message = 'Hello World';

3. Now add binding between UI and component with scriplet tag





4. Run below command to compile app

ng serve

5. Open browser and enter http://localhost:4200/

Your application is running and rendered “Hello World” in browser. Same way you can initialize variables and pass data from component to UI.

Now we have created hello world application with single component and now we will create additional component which will be useful to add re usability.

Create Attribute Directive

Use below command to create component

ng generate directive color

This command will create below folder structure

This command will also add new directive in declaration section of app.module.ts so it can be reused by other components and get loaded at startup


Edit color.directive.ts

Below is code for color.directive.ts

import { Directive, ElementRef, Renderer } from '@angular/core';

  selector: '[appColor]'
export class ColorDirective {

    constructor(el: ElementRef, renderer: Renderer) {
      // Use renderer to render the element with styles
        renderer.setElementStyle(el.nativeElement, 'color', 'red');


Edit Main page of application

we will use this directive in app.component.html so it will get displayed on front page using app.component.html


without directive
<h1 >Hello</h1>

With directive
<h1 appColor>Hello</h1>

<h1 *ngIf="name=='James'">


As you can see we have used h1 block without directive and after that we have used h1 block with directive appColor

Run below command to compile app

ng serve

Open App in browser

use below url to open in browser


Now you can see color of next Hello world change to red that means appearance of content in h1 block got changed .

This is how you can create attribute directive and use it in project .


Video Tutorial


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: