2016-08-16 7 views
4

Ich möchte die numberPipe auf meine Art Rohr nennen finde ich diese Antwortverlängern ein Rohr wie eine Währung oder Zahl auf einem benutzerdefinierten Rohr auf angular2

Angular2 use basic pipe in custom pipe

aber ich diese Lösung nicht über mich arbeiten . Ich habe einen Fehler

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

@Pipe({ 
name: "bigInteger" 
}) 
export class BigInteger extends CurrencyPipe implements PipeTransform { 
    transform(value: any): string { 
    return value 
} 
} 

Antwort

3

Update

dies seit einer Weile zumindest festgelegt werden sollte

original

in Angular4 "Das Rohr 'BigInteger' konnte nicht gefunden werden"

Es gibt ein bekanntes Problem mit DI und Klassen, die andere Klassen erweitern

https://github.com/angular/angular/issues/8694

Util dies ist fest Sie Zusammensetzung statt Vererbung verwenden können:

@Pipe({ 
    name: "bigInteger" 
}) 
export class BigInteger implements PipeTransform { 

    constructor(private currencyPipe:CurrencyPipe) {} 

    transform(value: any): string { 
    return this.currencyPipe.transform(value); 
    } 
} 
+0

zusätzlich dazu war ich auch einen Fehler bekommen, wenn in der Ansicht Vorlage meine benutzerdefinierte Rohr verwenden, beschweren, dass es Kein Anbieter für CurrencyPipe. Um diesen Fehler zu umgehen, habe ich ihn in meine app.module.ts aufgenommen: Provider: [..., CurrencyPipe] und jetzt funktioniert meine benutzerdefinierte Pipe! Nun, ich bin mir sicher, dass dies nicht die beste Vorgehensweise oder etwas anderes ist, aber ich müsste einen vernünftigen Weg finden, um Standard-Pipes zu überschreiben, oder vielleicht gibt es einen besseren Weg? – FireDragon

+0

auch, die CurrencyPipe kann in Angulars Gemeinsamem Modul 'Import {CurrencyPipe} von '@ angular/common' gefunden werden;' – FireDragon

Verwandte Themen