2016-12-01 4 views
1

Anfangs fand: Angular2: custom pipe could not be found dies nicht mir auf jeden Fall geholfen haben .. ich folgendes Problem:Angular 2 benutzerdefinierte Rohr nicht

Rohr:

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

@Pipe({ 
    name: "ToNumberPipe" 
}) 
export class ToNumberPipe extends DecimalPipe implements PipeTransform { 
    // this allows to pass strings in decimalpipes as well and do nothing if it NAN 
    public transform(value: string, args: string): any { 
     const retNumber = Number(value); 
     if (isNaN(retNumber)) { 
      return value; 
     } 
     return super.transform(value, args); 
    } 
} 

App: Modul

@NgModule(
    { 
     // all components, pipes and directive which are using this module 
     declarations: [AppComponent, ... all Components go here], 
     // All modules like forms or http 
     imports: [...., MainPipeModule], 
     // all services and other providers 
     providers: [...all services go here], 
     bootstrap: [AppComponent] 
    } 
) 
export class AppModule { 
} 

Rohrmodul

import { NgModule } from "@angular/core"; 
import {CommonModule} from "@angular/common"; 

import {ToNumberPipe} from "./shared/pipes/customNumber.pipe"; 
@NgModule(
    { 
     // all components, pipes and directive which are using this module 
     declarations: [ToNumberPipe], 
     imports: [CommonModule], 
     exports: [ToNumberPipe] 
    }) 
export class MainPipeModule { 
} 

Html-Code

<span [ngClass]="getClass(rowValue)" class="badge isLink" (click)="selectTask(rowValue.taskId)">{{rowValue.value | ToNumberPipe : "1.0-4"}}</span> 

Ich versuchte, das Rohr direkt an den app.module, aber mit dem gleichen Ergebnis zu addieren ...

zone.js:1 Unhandled Promise rejection: Template parse errors: 
The pipe 'ToNumberPipe' could not be found 

Auch habe ich versucht, die Argumente und fügen Sie ein einfaches Rohr zu entfernen auch ... immer der gleiche Fehler

Angular 2 Version: 2.2.4

+0

Welche Komponente enthält den Code, der die Pipe verwendet? Zu welchem ​​'NgModul' gehört diese Komponente? –

+0

Alle Komponenten befinden sich in derselben app.module-Datei. Bevor ich es in einige Module aufgeteilt habe und dachte, es könnte ein Problem mit den verschiedenen Modulen sein. Es hat aber nicht geholfen, alle Teile der App in einem Modul zu verschieben. –

Antwort

1

Sie haben mindestens v2.3.0-rc.0

verwenden

Bei dieser Version folgende Funktion ist enthalten: core: properly support inheritance

Ich denke, die Pfeife richtig aufgenommen und so weiter, aber die Dekorateure (zB. Ihr Name) sind nicht korrekt veröffentlicht ..

+0

Mit 2.3.0 rc1 funktioniert es! –

+0

Funktioniert bei mir nicht in Angular 2.3.1 (+ Webpack) – Tomino

+0

funktioniert nicht für mich Angular 4.0.0 = ( – Diego

Verwandte Themen