آموزش تمپلیت ها در انگولار ۷

3 سال پیش
آموزش تمپلیت ها در انگولار 7

آموزش تمپلیت ها در انگولار ۷

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش تمپلیت ها در انگولار ۷ خواهیم پرداخت.

انگولار ۷ از <ng-template> به عنوان تگ به جای <template> استفاده می کند که در انگولار ۲ استفاده می شود. <ng-template> از زمان انتشار انگولار ۴ مورد استفاده قرار گرفته است و نسخه قبلی یعنی انگولار ۲ از <template> برای همین منظور استفاده می کند. دلیل اینکه شروع به استفاده از <ng-template> به جای <template> از انگولار ۴ به بعد شد، این است که یک تضاد نام بین تگ <template> و تگ استاندارد <template> html وجود دارد. در ادامه به طور کامل منسوخ خواهد شد. این یکی از تغییرات عمده ای بود که در نسخه Angular 4 ایجاد شد.

اجازه دهید اکنون از الگو به همراه شرط if else استفاده کنیم و خروجی را ببینیم.

app.component.html

<!--The content below is only a placeholder and can be replaced.-->
<div style = "text-align:center">
   <h1>Welcome to {{title}}.</h1>
</div>

<div> Months :
   <select (change) = "changemonths($event)" name = "month">
      <option *ngFor = "let i of months">{{i}}</option>
   </select>
</div>
<br/>

<div>
   <span *ngIf = "isavailable;then condition1 else condition2">
      Condition is valid.
   </span>
   <ng-template #condition1>Condition is valid from template</ng-template>
   <ng-template #condition2>Condition is invalid from template</ng-template>
</div>
<button (click) = "myClickFunction($event)">Click Me</button>

 

برای تگ Span، دستور if را با شرط else اضافه کرده‌ایم و شرط ۱، else شرط۲ را فراخوانی می‌کنیم.

الگوها باید به صورت زیر فراخوانی شوند –

<ng-template #condition1>Condition is valid from template</ng-template> 
<ng-template #condition2>Condition is invalid from template</ng-template>

 

اگر شرط درست باشد، قالب شرط ۱ و در غیر این صورت شرط ۲ فراخوانی می شود.

app.component.ts

import { Component } from '@angular/core';
@Component({ 
   selector: 'app-root', 
   templateUrl: './app.component.html', 
   styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
   title = 'Angular 7'; 
   
   // declared array of months. 
   months = ["January", "February", "March", "April", "May", "June", "July", 
      "August", "September", "October", "November", "December"]; 
   isavailable = false; // variable is set to true
   
   myClickFunction(event) { 
      //just added console.log which will display the event details in browser on click of the button. 
      alert("Button is clicked"); 
      console.log(event); 
   }
   changemonths(event) { 
      alert("Changed month from the Dropdown"); 
   } 
}

 

خروجی در مرورگر به صورت زیر است –

Condition Invalid
متغیر isavailable نادرست است بنابراین الگوی شرط۲ چاپ می شود. اگر روی دکمه کلیک کنید، قالب مربوطه فراخوانی می شود.

app.component.ts

import { Component } from '@angular/core';
@Component({ 
   selector: 'app-root', 
   templateUrl: './app.component.html', 
   styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
   title = 'Angular 7'; 
   
   // declared array of months. 
   months = ["January", "Feburary", "March", "April", "May", "June", "July", 
      "August", "September", "October", "November", "December"];
   
   isavailable = false; //variable is set to true  
   myClickFunction(event) { 
      this.isavailable = !this.isavailable; 
      // variable is toggled onclick of the button 
   } 
   changemonths(event) {
      alert("Changed month from the Dropdown"); 
   }
}

 

متغیر isavailable با کلیک روی دکمه همانطور که در زیر نشان داده شده است تغییر می کند

myClickFunction(event) { 
   this.isavailable = !this.isavailable; 
}

 

هنگامی که بر روی دکمه بر اساس مقدار متغیر isavailable کلیک می کنید، الگوی مربوطه نمایش داده می شود –

Condition valid

 

اگر مرورگر را بررسی کنید، خواهید دید که هرگز تگ span را در dom دریافت نمی کنید. مثال زیر به شما در درک همین موضوع کمک می کند.

Template
اگرچه در app.component.html ما تگ span و <ng-template> را برای شرایطی که در زیر نشان داده شده است اضافه کرده ایم.

<span *ngIf = "isavailable;then condition1 else condition2">
   Condition is valid.
</span> 
<ng-template #condition1>Condition is valid from template</ng-template>
<ng-template #condition2>Condition is invalid from template</ng-template>

 

وقتی همان را در مرورگر بررسی می کنیم، تگ span و همچنین <ng-template> را در ساختار dom نمی بینیم.

خط کد زیر در html به ما کمک می کند تا تگ span را در dom − دریافت کنیم

<!--The content below is only a placeholder and can be replaced.--> 
<div style = "text-align:center"> 
   <h1> Welcome to {{title}}. </h1> 
</div>

<div> Months : 
   <select (change) = "changemonths($event)" name = "month"> 
      <option *ngFor = "let i of months">{{i}}</option>
   </select> 
</div> 
<br/>

<div> 
   <span *ngIf = "isavailable; else condition2">
      Condition is valid.
   </span>
   <ng-template #condition1>Condition is valid from template </ng-template> 
   <ng-template #condition2>Condition is invalid from template</ng-template> 
</div>
<button (click) = "myClickFunction($event)">Click Me</button>

اگر شرط then را حذف کنیم، پیام “شرط معتبر است” را در مرورگر دریافت می کنیم و تگ span نیز در dom موجود است. برای مثال، در app.component.ts، متغیر isavailable را درست در نظر گرفته‌ایم.

Available

 

منبع.

 

لیست جلسات قبل آموزش انگولار ۷

  1. آموزش انگولار ۷
  2. آموزش نمای کلی انگولار ۷
  3. آموزش راه اندازی محیط انگولار ۷
  4. آموزش راه اندازی پروژه در انگولار ۷
  5. آموزش اجزای سازنده در انگولار ۷
  6. آموزش ماژول ها در انگولار ۷
  7. آموزش اتصال داده در انگولار ۷
  8. آموزش اتصال رویداد در انگولار ۷
0
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه