Angular Academy · Lektion

Egenskaben hostDirectives

Tilknyt directives til en komponents host.

Lektion 1 af 413 trin

Egenskaben hostDirectives er en gratis Angular Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Angular Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Angular Academy-kurset indeholder 4 lektioner i alt.

API til direktivsammensætning

API'et til direktivsammensætning lader en komponent eller et direktiv deklarativt anvende andre direktiver på sit eget værtelement via egenskaben hostDirectives. Det gør genbrug muligt uden nedarvning.

Problemet, det løser

Tidligere skulle du enten gentage direktivet i hver skabelon eller bruge nedarvning for at genbruge direktivets funktionalitet. hostDirectives sammensætter funktionaliteten direkte på et værtelement.

Grundlæggende syntaks

Angiv direktiverne i arrayet hostDirectives i komponentens metadata.

@Component({
  selector: 'app-menu',
  hostDirectives: [CdkTrapFocus],
  template: '<ng-content></ng-content>'
})
export class MenuComponent {}

Hvad sker der?

Angular anvender automatisk CdkTrapFocus på hvert app-menu-værtelement. Brugerne får funktionaliteten uden selv at skulle tilføje direktivet.

Krav

Værtdirektiver skal være standalone. Du refererer direkte til direktivklassen, ikke til dens selector.

Flere værtdirektiver

Sammensæt flere funktionaliteter ved at angive dem alle.

hostDirectives: [
  HighlightDirective,
  TooltipDirective,
  CdkTrapFocus
]

Anvendelse på et direktiv

Et direktiv kan også have værtdirektiver, så du kan opbygge lagdelte og sammensættelige funktionaliteter.

@Directive({
  selector: '[appCard]',
  hostDirectives: [HoverElevateDirective]
})
export class CardDirective {}

Livscyklus-rækkefølge

Værtdirektiver instantieres før værtsklassens egen konstruktørlogik, så deres opsætning er tilgængelig, når værten initialiseres.

Afhængighedsinjektion

Værtdirektiver kan injiceres i værten, og omvendt, via elementinjektoren, så de sammensatte funktionaliteter kan koordinere.

private trap = inject(CdkTrapFocus);

Ingen ændringer i skabelonen

Den vigtigste fordel er, at brugere af app-menu ikke behøver at kende til CdkTrapFocus. Funktionaliteten er indkapslet i komponentdefinitionen.

Hvornår skal det bruges?

Brug hostDirectives til på en ren og genanvendelig måde at samle tværgående funktionaliteter som fokusfælde, ripple-effekt og analyse i komponenter eller direktiver.

Hurtigt tjek

Test din forståelse af hostDirectives.

Opsummering

Du har lært, at egenskaben hostDirectives automatisk anvender standalone-direktiver på en komponents eller et direktivs værtelement, så funktionalitet kan genbruges gennem sammensætning uden skabeloner eller nedarvning.

Gratis at komme i gang

Lær HTML med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
38
Lektioner
144

Ofte stillede spørgsmål

Er lektionen “Egenskaben hostDirectives” gratis?

Ja — alle 3 lektioner i læringssporet Angular Academy, inklusive “Egenskaben hostDirectives”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Angular Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Egenskaben hostDirectives”?

Tilknyt directives til en komponents host. Du øver dig i Angular Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Angular Academy?

Der kræves ingen tidligere erfaring. Angular Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Egenskaben hostDirectives”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Angular Academy-lektion?

Ja. Alle Angular Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Egenskaben hostDirectives
  2. Eksponering af inputs og outputs
  3. Opbygning af genanvendelig funktionalitet
  4. Komposition kontra arv
← Tilbage til Angular Academy