javascript - Angular2 Bruke Pipes i Component.js
Jeg lærer Angular2 og jeg vil formatere et tall med tusenskilletegn. Så vidt jeg har lest kan dette gjøres ved hjelp av Pipes, men saken er at jeg vil formatere tallet programmessig i js-filen, ikke i html (ved å gjøre noe som var | number).
Først og fremst har jeg innsett at det ikke finnes noen NumberPipe som en selvstendig pipe som jeg kan jobbe med (rett meg hvis jeg tar feil), den mest lignende er CurrencyPipe i @angular2/common. Så jeg har noe som dette:
import { Component } from '@angular/core';
import { CurrencyPipe } from '@angular/common';
@Component({
templateUrl: 'test.component.html',
styleUrls: ['./test.component.scss']
})
export class TestComponent {
public myNumber = 1000;
constructor(private currencyPipe: CurrencyPipe) {
var formatted = this.currencyPipe().transform(this.myNumber, 'MXN', true); // Is this correct?
}
}
Men det gir meg følgende feil: Ubehandlet løfteavvisning: Ingen leverandør for CurrencyPipe! ; Sone: angular ;...
Hva gjør jeg galt?
Takk på forhånd.
Hilsen
Svar #1
Først: du må deklarere røret ditt - legg det til i NgModule declarations-seksjonen:
declarations: [CurrencyPipe]
Andre ting: pipes er ikke injiserbare, så du kan ikke ta instansen deres ved å bruke Angulars avhengighetsinjeksjonssystem. Du må lage en ny instans av denne pipen manuelt, som:
var formatted = (new CurrencyPipe()).transform(this.myNumber, 'MXN', true);
