ngTemplateOutlet
[ngTemplateOutlet] bilan havola qilingan shablonni qayta ishlating va ko‘rsating.
ngTemplateOutlet nima?
<ng-template>shablonning qayta ishlatilishi mumkin bo‘lgan qismini ("retsept") belgilaydi.- Uni
[ngTemplateOutlet]bilan ko‘rsating. - Qiymatlarni
[ngTemplateOutletContext]orqali o‘tkazing valet-o‘zgaruvchilar bilan o‘qing.
ngTemplateOutlet-dan qachon foydalanish kerak
- Turli ma’lumotlar yoki renderlash o‘zgarishlari bilan UI naqshlaridan qayta foydalaning.
- Murakkab, qayta foydalanish mumkin bo‘lgan mantiq uchun komponentlardan foydalaning.
- Yengil, faqat ko‘rish uchun qayta foydalanish uchun shablonlardan foydalaning.
Maslahat: <ng-container> qo‘shimcha DOM elementlarini qo‘shmaydigan mantiqiy o‘ram sifatida foydalaning.
Aloqador: <ng-content> bilan kontent proyeksiyasi uchun componentlar ga qarang.
Misol
import { bootstrapApplication } from '@angular/platform-browser';
import { Component } from '@angular/core';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-root',
standalone: true,
imports: [CommonModule],
template: `
<h3>Templates with ngTemplateOutlet</h3>
<label>
Type:
<select (change)="type = $any($event.target).value">
<option value="info">info</option>
<option value="warning">warning</option>
<option value="success">success</option>
</select>
</label>
<label>
Message: <input (input)="msg = $any($event.target).value" [value]="msg" />
</label>
<ng-container
[ngTemplateOutlet]="type === 'info' ? infoTpl : (type === 'warning' ? warnTpl : successTpl)"
[ngTemplateOutletContext]="{ $implicit: msg }">
</ng-container>
<ng-template #infoTpl let-text>
<p style="color:royalblue">Info: {{ text }}</p>
</ng-template>
<ng-template #warnTpl let-text>
<p style="color:darkorange">Warning: {{ text }}</p>
</ng-template>
<ng-template #successTpl let-text>
<p style="color:seagreen">Success: {{ text }}</p>
</ng-template>
`
})
export class App {
type: 'info' | 'warning' | 'success' = 'info';
msg = 'Hello';
}
bootstrapApplication(App);
<app-root></app-root>
Misol tushuntirildi
<ng-template>: Qayta foydalanish mumkin bo‘lgan shablon blokini belgilaydi (moslama berilmaguncha ko‘rsatilmaydi).[ngTemplateOutlet]: Qaysi shablonni ko‘rsatishni tanlaydi (bu yerdatypega asoslangan uchlik ifoda orqali).[ngTemplateOutletContext]: Shablonga qiymatlarni uzatadi.$implicitkaliti mos keladiganlet-o‘zgaruvchi tomonidan o‘qiladi.let-text: Shablon ichida kontekstdan$implicitqiymatini o‘qiydigan mahalliy o‘zgaruvchini e’lon qiladi.<ng-container>: Qo‘shimcha DOM elementlarini yaratmaydigan mantiqiy o‘rash.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
