Egenskaben hostDirectives
Tilknyt directives til en komponents host.
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.
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
- Egenskaben hostDirectives
- Eksponering af inputs og outputs
- Opbygning af genanvendelig funktionalitet
- Komposition kontra arv