Jak vytvořit vlastní směrnice v Angular

Jak vytvořit vlastní směrnice v Angular
Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Jednou z klíčových vlastností Angularu jsou směrnice. Úhlové direktivy představují způsob, jak přidat chování prvkům DOM. Angular poskytuje řadu vestavěných direktiv a v tomto robustním rámci můžete také vytvářet vlastní direktivy.





MUO Video dne POKRAČOVÁNÍ V OBSAHU POKRAČUJTE PŘEJÍMÁNÍM

Co jsou směrnice?

Direktivy jsou vlastní kódy, které Angular používá k úpravě chování nebo vzhledu HTML elementu. Direktivy můžete použít k přidání posluchačů událostí, změně modelu DOM nebo zobrazení či skrytí prvků.





Existují dva typy vestavěné směrnice v Angular , strukturální a atributové. Strukturální direktivy mění strukturu DOM, zatímco atributové direktivy mění vzhled nebo chování prvku. Direktivy jsou účinným způsobem, jak rozšířit funkčnost komponent Angular.





Přínosy směrnic

Zde jsou některé z výhod používání direktiv v Angular:

  • Znovupoužitelnost : Direktivy můžete použít ve více komponentách, což vám ušetří čas a námahu.
  • Rozšiřitelnost : Direktivy můžete rozšířit a přidat nové funkce, díky nimž budou vaše komponenty výkonnější.
  • Flexibilita : Pomocí direktiv můžete různými způsoby upravit chování nebo vzhled prvku, což vám poskytuje velkou flexibilitu při sestavování aplikací.

Nastavení vaší úhlové aplikace

Chcete-li nastavit aplikaci Angular, nainstalujte Angular CLI spuštěním následujícího kódu ve vašem terminálu:



 npm install -g @angular/cli 

Po instalaci Angular CLI vytvořte projekt Angular spuštěním následujícího příkazu:

 ng new custom-directives-app 

Spuštěním příkazu výše vytvoříte projekt Angular s názvem custom-directives-app .





Vytvoření celní směrnice

Nyní máte projekt Angular a můžete začít vytvářet vlastní direktivy. Vytvořte soubor TypeScript a definujte třídu zdobenou @Směrnice dekoratér.

The @Směrnice decorator je dekorátor TypeScript používaný k vytváření vlastních direktiv. Nyní vytvořte a zvýraznění.směrnice.ts soubor v src/app adresář. V tomto souboru vytvoříte vlastní direktivu zvýraznit .





Například:

 import { Directive } from "@angular/core"; 

@Directive({
  selector: "[myHighlight]",
})
export class HighlightDirective {
  constructor() {}
}

Blok kódu výše importuje soubor Směrnice dekoratér z @angular/core modul. The @Směrnice dekoratér zdobí HighlightDirective třída. Bere objekt jako argument s a volič vlastnictví.

V tomto případě nastavíte volič majetek do [myHighlight] což znamená, že můžete použít tuto direktivu na vaše šablony přidáním myHighlight atribut k prvku.

jak zjistit, kdo vás sleduje na facebooku

Zde je příklad, jak použít direktivu ve vašich šablonách:

 <main> 
<p myHighlight>Some text</p>
</main>

Doplnění směrnice o chování

Nyní jste úspěšně vytvořili směrnici. Dalším krokem je přidání chování do direktivy, aby mohla manipulovat s DOM. Budete potřebovat ElementRef z @angular/core pro přidání chování do směrnice.

ElementRef vložíte do konstruktoru směrnice. ElementRef je obal kolem nativního prvku uvnitř pohledu.

nainstalujte Google Play na Amazon Fire

Zde je příklad, jak přidat chování do direktivy:

 import { Directive, ElementRef } from "@angular/core"; 

@Directive({
    selector: "[myHighlight]"
})
export class HighlightDirective {
    constructor(private element: ElementRef) {
        this.element.nativeElement.style.backgroundColor = 'lightblue';
    }
}

V tomto příkladu konstruktor HighlightDirective class přebírá parametr ElementRef, který Angular automaticky vkládá. ElementRef poskytuje přístup k základnímu prvku DOM.

Použitím this.element.nativeElement získáte přístup k nativnímu prvku DOM souboru živel parametr. Poté nastavte barvu pozadí komponenty na světle modrá za použití styl vlastnictví. To znamená, že jakýkoli prvek použijete myHighlight směrnice na bude mít světle modré pozadí.

Aby byla direktiva funkční, ujistěte se, že ji importujete a deklarujete v app.module.ts soubor.

Například:

 import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HighlightDirective } from './highlight.directive';

@NgModule({
  declarations: [
    AppComponent,
    HighlightDirective,
  ],
  imports: [
    BrowserModule,
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Nyní můžete použít direktivu myHighlight na prvky ve vašich Angular součástech .

 <main> 
<p myHighlight>Some text</p>
</main>

Spusťte aplikaci na vývojovém serveru a otestujte, zda je direktiva funkční. Můžete to provést spuštěním následujícího příkazu v terminálu:

 ng serve 

Po spuštění příkazu přejděte na http://localhost:4200/ ve webovém prohlížeči a uvidíte rozhraní, které vypadá jako na obrázku níže.

  snímek obrazovky aplikace custom-directives-app

Úhlové vestavěné direktivy přijímají hodnoty pro změnu vzhledu prvku, ale vlastní direktivu myHighlight ne. Direktivu můžete nakonfigurovat tak, aby přijímala hodnotu, kterou použije k dynamickému nastavení barvy pozadí šablony.

Chcete-li to provést, nahraďte kód v zvýraznění.směrnice.ts soubor s tímto:

 import { Directive, ElementRef, Input } from "@angular/core"; 

@Directive({
    selector: "[myHighlight]"
})

export class HighlightDirective {
    @Input() set myHighlight(color: string) {
        this.element.nativeElement.style.backgroundColor = color;
    }

    constructor(private element: ElementRef) {
    }
}

Ve výše uvedeném bloku kódu je HighlightDirective třída obsahuje nazvanou metodu setter myHighlight . Tato metoda trvá a barva parametr typu string. Metodu setru ozdobíte pomocí @Vstup dekorátor, který umožňuje předat hodnotu barvy do direktivy z nadřazené komponenty.

Nyní můžete určit barvu pozadí předáním hodnoty direktivě myHighlight.

Například:

 <main> 
<p myHighlight='pink'>Some text</p>
</main>

Vytvoření vlastní strukturální směrnice

V předchozích částech jste se naučili vytvářet, přidávat chování a aplikovat direktivy vlastních atributů na vaši šablonu. Direktivy atributů mění vzhled prvků DOM, zatímco strukturální direktivy přidávají, odebírají nebo přesouvají prvky v DOM.

Angular poskytuje dvě strukturální směrnice, ngFor a GIF . Směrnice ngFor vykreslí šablonu pro každou položku v kolekci (pole), zatímco GIF zpracovává podmíněné vykreslování.

V této části vytvoříte vlastní strukturální direktivu, která funguje jako GIF směrnice. Chcete-li to provést, vytvořte a podmínka.směrnice.ts soubor.

V podmínka.směrnice.ts soubor, napište tento kód:

jak zkontrolovat číslo imei v iphone
 import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core' 

@Directive({
    selector: "[condition]"
})

export class ConditionDirective {

    @Input() set condition(arg: boolean) {
        if(arg) {
            this.viewContainer.createEmbeddedView(this.template)
        } else {
            this.viewContainer.clear();
        }
    }

    constructor(
private template: TemplateRef<unknown>,
private viewContainer: ViewContainerRef
) {}
}

Tento blok kódu vám umožňuje podmíněně vykreslovat prvky použitím stav direktivu prvku a předání booleovské hodnoty z nadřazené komponenty.

V konstruktoru ConditionDirective třídy, vložíte instanci TemplateRef a ViewContainerRef . TemplateRef představuje šablonu přidruženou k direktivě a ViewContainerRef představuje kontejner, kde aplikace vykresluje pohledy.

Metoda setter třídy ConditionDirective používá ke kontrole parametru arg příkaz if else. Direktiva vytvoří vložený pohled pomocí poskytnuté šablony, pokud je parametr pravdivý. The createEmbeddedView metoda třídy ViewContainerRef vytvoří a vykreslí pohled v DOM.

Pokud je parametr Nepravdivé , direktiva vymaže kontejner zobrazení pomocí Průhledná metoda třídy ViewContainerRef. Tím se z DOM odstraní všechny dříve vykreslené pohledy.

Po vytvoření směrnice ji zaregistrujte ve svém projektu tak, že ji importujete a deklarujete v app.module.ts soubor. Poté můžete začít používat direktivu ve svých šablonách.

Zde je příklad, jak jej použít ve vašich šablonách:

 <main> 
<p *condition="true">Hello There!!!</p>
</main>

Nyní můžete vytvářet vlastní směrnice

Vlastní direktivy v Angular poskytují účinný způsob, jak manipulovat s DOM a přidat dynamické chování do vašich šablon. Naučili jste se vytvářet a používat vlastní atributy a strukturální direktivy ve vašich Angular aplikacích. Když pochopíte, jak vytvářet a používat vlastní direktivy, můžete plně využít možnosti Angular.