ng-template og ng-container
Definer og vis malfragmenter.
ng-template og ng-container er en gratis leksjon i Angular Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Angular Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Angular Academy inneholder totalt 4 leksjoner.
Maler som ikke rendres
<ng-template> definerer en del markup som ikke rendres før noe oppretter den eksplisitt. Det er grunnlaget for strukturelle direktiver som *ngIf.
Definere en mal
Innholdet i <ng-template> forblir inaktivt. De gir det en referansevariabel for å kunne bruke det et annet sted.
<ng-template #empty>
<p>No items found.</p>
</ng-template>Rendere med ngTemplateOutlet
Bruk ngTemplateOutlet til å rendre en mal ved hjelp av en referanse.
<ng-container *ngTemplateOutlet="empty"></ng-container>
<ng-template #empty>
<p>No items found.</p>
</ng-template>Hvorfor ng-container?
<ng-container> er et logisk element uten DOM for gruppering. Det lar Dem bruke direktiver eller gruppere noder uten å legge til et ekstra omslagselement i DOM-en.
Unngå omslags-diver
Uten ng-container kan De bli nødt til å legge til en unødvendig <div> bare for å være vert for et direktiv. ng-container forsvinner fra det rendrende resultatet.
<ng-container *ngIf="user">
<h2>{{ user.name }}</h2>
<p>{{ user.email }}</p>
</ng-container>Gruppere kontrollflyt
ng-container er svært nyttig for å pakke inn nye kontrollflytblokker uten å legge til DOM.
<ng-container *ngIf="ready">
@for (item of items; track item.id) {
<li>{{ item.name }}</li>
}
</ng-container>Malkontekst
Maler kan motta et kontekst-objekt som eksponerer verdier via let--variabler.
<ng-template #row let-name="name">
<p>{{ name }}</p>
</ng-template>
<ng-container
*ngTemplateOutlet="row; context: { name: 'Ada' }">
</ng-container>Standardverdi for kontekst
Den spesielle kontekstverdien $implicit bindes til en let--variabel uten en tilordnet nøkkel.
<ng-template #item let-value>
<span>{{ value }}</span>
</ng-template>
<ng-container
*ngTemplateOutlet="item; context: { $implicit: 42 }">
</ng-container>Maler er førsteklasses verdier
En #ref på en <ng-template> er en TemplateRef. De kan sende den som en @Input, slik at en komponent lar forbrukere tilpasse deler av brukergrensesnittet.
emptyTemplate = input<TemplateRef<unknown>>();ng-container som vert
ng-container er også nyttig som vert for utløp for dynamiske komponenter eller maler, samtidig som DOM-en holdes ryddig.
<ng-container *ngComponentOutlet="widgetComponent">
</ng-container>Når skal De bruke hva?
ng-template: utsatt/gjenbrukbar markup. ng-container: gruppering og hosting av direktiver uten ekstra DOM. De brukes ofte sammen.
Hurtigsjekk
Test forståelsen Deres av ng-template og ng-container.
Oppsummering
De har lært at <ng-template> inneholder inaktiv, opprettbar markup som rendres via ngTemplateOutlet (eventuelt med kontekst), mens <ng-container> grupperer noder eller er vert for direktiver uten å legge til DOM.
Lær deg HTML med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 38
- Leksjoner
- 144
Ofte stilte spørsmål
Er leksjonen «ng-template og ng-container» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Angular Academy, inkludert «ng-template og ng-container», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Angular Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «ng-template og ng-container»?
Definer og vis malfragmenter. Du øver på Angular Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Angular Academy?
Ingen tidligere erfaring er nødvendig. Angular Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «ng-template og ng-container»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Angular Academy-leksjonen?
Ja. Alle Angular Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Innholdsprojisering med én plass
- Projisering med flere plasser ved hjelp av select
- ng-template og ng-container
- TemplateRef og ViewContainerRef