Angular Academy · leksjon

Opprette egendefinerte pipes

Bygg gjenbrukbare transformerings-pipes.

Leksjon 3 av 413 trinn

Opprette egendefinerte pipes 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.

Hvorfor egendefinerte pipes?

Når de innebygde pipene ikke er tilstrekkelige, kan De opprette en egendefinert pipe for å kapsle inn gjenbrukbar transformeringslogikk for malene.

Dekoratoren @Pipe

En pipe er en klasse som er dekorert med @Pipe. Egenskapen name er navnet De bruker i malene.

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

@Pipe({ name: "exclaim", standalone: true })
export class ExclaimPipe {}

Implementere PipeTransform

En pipe-klasse implementerer grensesnittet PipeTransform, som krever én transform-metode.

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({ name: "exclaim", standalone: true })
export class ExclaimPipe implements PipeTransform {
  transform(value: string): string {
    return value + "!";
  }
}

Metoden transform

Den første parameteren til transform er verdien som sendes gjennom pipen. Det De returnerer, blir resultatet som vises.

transform(value: string): string {
  return value.trim();
}

Bruke pipen Deres

Importer pipen til en frittstående komponent, og bruk deretter navnet i malen på samme måte som en innebygd pipe.

@Component({
  selector: "app-demo",
  standalone: true,
  imports: [ExclaimPipe],
  template: "<p>{{ 'hi' | exclaim }}</p>"
})
export class DemoComponent {}
// renders: hi!

Ta imot argumenter

Ekstra parametere etter value blir pipe-argumenter. De som kaller pipen, sender dem med kolon.

@Pipe({ name: "repeat", standalone: true })
export class RepeatPipe implements PipeTransform {
  transform(value: string, times: number): string {
    return value.repeat(times);
  }
}
// {{ "ab" | repeat:3 }} -> ababab

Standardverdier for argumenter

Gi argumenter standardverdier slik at de som kaller pipen, kan utelate dem. Dette gjør pipen mer fleksibel.

transform(value: string, times: number = 2): string {
  return value.repeat(times);
}
// {{ "ab" | repeat }} -> abab

Håndtere null og undefined

Beskytt alltid koden mot manglende inndata. Returner et fornuftig reservealternativ når verdien er null eller undefined.

transform(value: string | null): string {
  if (value == null) return "";
  return value.toUpperCase();
}

Eksempel på en truncate-pipe

Her er en praktisk pipe som forkorter lang tekst og legger til en ellipse.

@Pipe({ name: "truncate", standalone: true })
export class TruncatePipe implements PipeTransform {
  transform(value: string, limit: number = 20): string {
    if (!value) return "";
    return value.length > limit
      ? value.slice(0, limit) + "..."
      : value;
  }
}

Typebestemme returverdien

Angi returtypen slik at TypeScript og malene Deres forblir typesikre. En pipe kan returnere alle typer, ikke bare strenger.

@Pipe({ name: "double", standalone: true })
export class DoublePipe implements PipeTransform {
  transform(value: number): number {
    return value * 2;
  }
}

Registrere i en modul (NgModule)

Hvis De bruker NgModules i stedet for frittstående komponenter, må De deklarere pipen i declarations og eksportere den ved behov.

@NgModule({
  declarations: [TruncatePipe],
  exports: [TruncatePipe]
})
export class SharedModule {}

Rask kontroll

Test forståelsen Deres av egendefinerte pipes.

Oppsummering

De har laget en egendefinert pipe med @Pipe og PipeTransform, tatt imot argumenter med standardverdier, beskyttet mot null og registrert pipen i frittstående komponenter eller NgModules.

Deretter skal De lære om pure og impure pipes.

Gratis å komme i gang

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 «Opprette egendefinerte pipes» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Angular Academy, inkludert «Opprette egendefinerte pipes», 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 «Opprette egendefinerte pipes»?

Bygg gjenbrukbare transformerings-pipes. 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 «Opprette egendefinerte pipes»?

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

  1. Bruke innebygde pipes
  2. Kjede og parametrere pipes
  3. Opprette egendefinerte pipes
  4. Rene kontra urene pipes
← Tilbake til Angular Academy