2017-01-28 3 views
0

Ich versuche meine benutzerdefinierte Pipe mit einem Array zu verwenden, dem ich Werte innerhalb eines Abonnements zuweise. Allerdings bekomme ich diesen Fehler:Angular 2 - Pipe kann nicht gefunden werden

Unhandled Promise rejection: Template parse errors: 
The pipe 'summary' could not be found 

app.module.ts

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms' 
import { HttpModule } from '@angular/http' 
import { AppComponent } from './app.component'; 
import { UserComponent } from './components/user.component'; 
import { AboutComponent } from './components/about.component'; 
import { routing } from './app.routing'; 
import { SummaryPipe } from './pipes/summary.pipe' 

@NgModule({ 
    imports:  [ BrowserModule, FormsModule, HttpModule, routing ], 
    declarations: [ AppComponent, UserComponent, AboutComponent, SummaryPipe ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

summary.pipe.ts

import { Pipe, PipeTransform } from '@angular/core' 

@Pipe({name: 'summary'}) 
export class SummaryPipe implements PipeTransform{ 
    transform(value: string, args: String[]){ 
     if(value) 
      return value.substring(0, 50) + "..."; 
    } 
} 

user.component.ts

user.component.html

<h3>Posts</h3> 
    <div *ngFor="let post of posts"> 
     <h3>{{post.title }}</h3> 
     <p>{{post.body | summary}}</p> 
    </div> 

Ich habe die Dokumentation gefolgt, aber ich kann nicht scheinen, damit es funktioniert. Irgendwelche Ideen?

+0

Obwohl alles gut und seltsam scheint, dass Sie ein solches Problem konfrontiert sind, könnten Sie versuchen, die Zusammenfassung mit wie '{{post.body | Zusammenfassung: null}} '(obwohl das keinen Sinn macht) –

+0

@AliBaig Ja, ich bin ein bisschen fest. Ich habe versucht, die Zusammenfassung Pipe auf einer anderen Interpolation auf der gleichen Seite und ich bekomme immer noch den gleichen Fehler. Ich verstehe nicht, was ich vermisse. –

+0

Vielleicht dumm, aber ich muss fragen ... haben Sie überprüft, dass der Importpfad zu Ihrem Modul korrekt ist, würde sich Ihre Ide natürlich beschweren, wenn Sie den falschen Weg haben. Fragen, Cuz, konnte nicht reproduzieren Ihr Problem mit Ihrem Code und statische Daten ... http://plnkr.co/edit/ZT4DcWFqb6SxHL9tGoTS – Alex

Antwort

0

Umwandlung Funktion Deklaration sollte einen gewissen Wert zurückgeben. In Ihrem Fall Zeichenfolge.

Und Transformationsfunktion sollte so aussehen:

transform(value: string): string { 
    if(value){ 
     return value.substring(0, 50) + "..."; 
    } 
    return value; 
    } 
+0

Vielleicht hast du meinen Plunker verpasst, aber da sollte nichts falsch mit der Pipe sein: http: // plnrkr.co/edit/ZT4DcWFqb6SxHL9tGoTS?p=info – Alex

Verwandte Themen