Saturday, October 2, 2021

ஆங்குலரில் டிரெக்டிவ்ஸ்.(Angular Directives) பகுதி -1

 

ஆங்குலரில் டிரெக்டிவ்ஸ்.(Angular Directives) பகுதி -1





 

ஆங்குலரில் டிரெக்டிவ்ஸ் என்பது ஆங்குலர் எலிமெண்டுகளுக்கு கூடுதல் பிஹேவியர் வழங்க உதவும் கிளாஸ்கள் ஆகும்.

ஆங்குலரில் மூன்று வகையான டிரெக்டிவ்ஸ் இருக்கின்றன. அவையாவன

1. Component directives: இது டெம்ப்லேட் உடன் வரும் டிரெக்டிவ் ஆகும் இது பொதுவான வகையாகும்.

2. Attribute directives:இது ஒரு எலிமெண்டின் தோற்றத்தையோ அல்லது பிஹேவியரையோ மாற்ற உதவுகின்றது.

3. Structural directives: இது DOM எலிமெண்ட் லே அவுட்டை மாற்ற்க் கூடியது. புதிதாக ஒரு டாம் எலிமெண்டை சேர்க்கவோ அல்லது நீக்கவோ வல்லது

app.component.cs

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

 

@Component({

  selector: 'app-root',

  templateUrl: './app.component.html',

  styleUrls: ['./app.component.css']

})

export class AppComponent {

  courses=[1,2];

  

 

}

மேலே உள்ள சான்று நிரலில் courses என்றொரு லிஸ்ட் இருக்கின்றது.

 

app.component.html

<div *ngIf="courses.length>0">

  List of courses

</div>

<div *ngIf="courses.length==0">

  No course available

</div>

 

மேலே உள்ள நிரலில் இரண்டு டிவ் டேக்குகள் உள்ளன.

முதலாவது courses என்ற லிஸ்டின் லெங்க்த் 1 அல்லது அதற்கு மேற்பட்டதாக இருந்தாம் மட்டுமே காண்பிக்க்ப்படும்.

இரண்டாவது courses என்ற லிஸ்டின் லெங்க்த் 0 ஆக இருந்தால் மட்டுமே காண்பிக்கப்படும்.

இதை ,மேலும் கீழ்கண்டவாறு மாற்றியமைக்கலாம்.

<div *ngIf="courses.length>0; then CourseList else NoCourses"></div>

<ng-template #CourseList>

  List of courses

</ng-template>

 

<ng-template #NoCourses>

  No course available

</ng-template>

 

வெளியீடு:


இதில் courses என்ற லிஸ்டில் உள்ள ஐட்டங்களை அகற்றினால்

No course available

என வெளியீடு மாறும்.

மேலே உள்ள நிரலை hidden என்ற பிராப்பர்ட்டி மூலமும் மறைக்கலாம்.

 

<div [hidden]="courses.length==0">

  list of courses

</div>

<div [hidden]="courses.length>0">

  No course available

</div>

இதில் Courses என்ற லிஸ்டின் லெங்த் 0 ஆக இருந்தால் முதல் டிவ் மறைக்கப்படும்.

courses என்ற லிஸ்டின் லெங்க்த் 0 விற்கு மேற்பட்டு இருந்தால் இரண்டாவது டிவ் மறைக்கப்படும்.

இப்பொழுது ngSwitchCase பற்றிப்பார்ப்போம்.

இது மற்ற நிரலாக்க மொழிகளில் உள்ள switch, case மாதிரி தான் செயல்படும்

app.component.ts

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

 

@Component({

  selector: 'app-root',

  templateUrl: './app.component.html',

  styleUrls: ['./app.component.css']

})

export class AppComponent {

  viewMode='map';

  

  

}

 

app.component.html

<ul class="nav  nav-pills">

  <li [class.active]="viewMode =='map'"><a (click)="viewMode='map'">Map view</a></li>

  <li [class.active]="viewMode =='list'"><a (click)="viewMode='list'">List view</a></li>

</ul>

 

  <div [ngSwitch]="viewMode">

<div *ngSwitchCase="'map'">

  map view content

</div>

<div *ngSwitchCase="'list'">

  List view content

</div>

<div *ngSwitchDefault> others

 

</div>

 

</div>

 

வெளியீடு:


இப்பொழுது இரண்டாவது உள்ள list view என்பதை சொடுக்கினால் பின் வருமாறு வெளியீடு இருக்கும்.


 

ngFor

இது நிரலாக்க மொழிகளில் உள்ள ஃஃபார் லூப் போன்று செயல்படுகின்றது.

app.component.ts

import { AstPath } from '@angular/compiler';

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

 

@Component({

  selector: 'app-root',

  templateUrl: './app.component.html',

  styleUrls: ['./app.component.css']

})

export class AppComponent {

courses=[

{ id:1, name:'ASP.NET'},

{ id:2, name:'Angular'},

{ id:3, name:'Reactjs'}

 

];

  

}

 

app.component.html

<ul>

  <li *ngFor="let course of courses">

    {{course.name}}

  </li>

</ul>

வெளியீடு:


app.component.ts

import { AstPath } from '@angular/compiler';

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

 

@Component({

  selector: 'app-root',

  templateUrl: './app.component.html',

  styleUrls: ['./app.component.css']

})

export class AppComponent {

courses=[

{ id:1, name:'ASP.NET'},

{ id:2, name:'Angular'},

{ id:3, name:'Reactjs'}

 

];

onAdd(){

  this.courses.push({id:4, name:"csharp"})

}

  

}

app.component.html

<button (click)="onAdd()">Add</button>

<ul>

  <li *ngFor="let course of courses">

    {{course.name}}

  </li>

</ul>

 

output:


 

Add பட்டனை கிளிக் செய்த் பிறகு.


இப்பொழுது ஒவ்வொரு எலிமெண்டாக டெலீட் செய்வது என்று பார்ப்போம்.

app.component.ts

import { AstPath } from '@angular/compiler';

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

 

@Component({

  selector: 'app-root',

  templateUrl: './app.component.html',

  styleUrls: ['./app.component.css']

})

export class AppComponent {

courses=[

{ id:1, name:'ASP.NET'},

{ id:2, name:'Angular'},

{ id:3, name:'Reactjs'}

 

];

onAdd(){

  this.courses.push({id:4, name:"csharp"})

}

onRemove(course){

  let index=this.courses.indexOf(course);

  this.courses.splice(index,1)

}

}

 

app.component.html

<button (click)="onAdd()">Add</button>

<ul>

  <li *ngFor="let course of courses">

    {{course.name}}

    <Button (click)="onRemove(course)">Remove </Button>

  </li>

</ul>

output:


Remove பட்டனை கிளிக் செய்த பிறகு


 

இப்பொழுது எலிமெண்டை அப்டேட் செய்வது என்று காண்போம்.

app.component.ts

import { AstPath } from '@angular/compiler';

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

 

@Component({

  selector: 'app-root',

  templateUrl: './app.component.html',

  styleUrls: ['./app.component.css']

})

export class AppComponent {

courses=[

{ id:1, name:'ASP.NET'},

{ id:2, name:'Angular'},

{ id:3, name:'Reactjs'}

 

];

onAdd(){

  this.courses.push({id:4, name:"csharp"})

}

onRemove(course){

  let index=this.courses.indexOf(course);

  this.courses.splice(index,1)

}

onChange(course)

{

  course.name='updated';

}

}

 

app.component.html

<button (click)="onAdd()">Add</button>

<ul>

  <li *ngFor="let course of courses">

    {{course.name}}

    <Button (click)="onChange(course)">Update </Button>

  </li>

</ul>

output:


update பட்டனை கிளிக் செய்தக் பிறகு:


நன்றி.

முத்து கார்த்திகேயன்,மதுரை.

ads Udanz

No comments:

Post a Comment