Die Pipe '' konnte nicht gefunden werden
Ich kann nicht scheinen, um diesen Fehler zu beheben. Ich habe eine search bar und ein ngFor. Ich versuche, filter-array mithilfe einer benutzerdefinierten Rohr wie diese:
import { Pipe, PipeTransform } from '@angular/core';
import { User } from '../user/user';
@Pipe({
name: 'usersPipe',
pure: false
})
export class UsersPipe implements PipeTransform {
transform(users: User [], searchTerm: string) {
return users.filter(user => user.name.indexOf(searchTerm) !== -1);
}
}
Verwendung:
<input [(ngModel)]="searchTerm" type="text" placeholder="Search users">
<div *ngFor="let user of (users | usersPipe:searchTerm)">
...
</div>
Fehler:
zone.js:478 Unhandled Promise rejection: Template parse errors:
The pipe 'usersPipe' could not be found ("
<div class="row">
<div
[ERROR ->]*ngFor="let user of (user | usersPipe:searchTerm)">
Eckige Versionen:
"@angular/common": "2.0.0-rc.5",
"@angular/compiler": "2.0.0-rc.5",
"@angular/core": "2.0.0-rc.5",
"@angular/platform-browser": "2.0.0-rc.5",
"@angular/platform-browser-dynamic": "2.0.0-rc.5",
"@angular/router": "3.0.0-rc.1",
"@angular/forms": "0.3.0",
"@angular/http": "2.0.0-rc.5",
"es6-shim": "^0.35.0",
"reflect-metadata": "0.1.3",
"rxjs": "5.0.0-beta.6",
"systemjs": "0.19.26",
"bootstrap": "^3.3.6",
"zone.js": "^0.6.12"
InformationsquelleAutor der Frage Sumama Waheed | 2016-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass Sie nicht vor ein "cross Modul-problem"
Wenn die Komponente, die mit dem Rohr, nicht zum Modul gehören, die erklärt hat, die Leitung der Komponente "Global", dann das Rohr nicht gefunden und man bekommt diese Fehlermeldung.
In meinem Fall habe ich erklärt, die Leitung in ein separates Modul und importiert diese pipe Modul im anderen Modul mit Komponenten mithilfe der pipe.
Habe ich erklärt
die Komponente, in der Sie mit dem Rohr ist
das Rohr Modul
Verwendung in einem anderen Modul (z.B. app.Modul)
InformationsquelleAutor der Antwort Karl
Müssen Sie die pipe-in-Modul Erklärung:
InformationsquelleAutor der Antwort Yuvals
Fand ich das "Kreuz-Modul" Antwort oben sehr hilfreich für meine situation, aber vergrößern möchte, da es eine andere Falte zu betrachten. Wenn Sie haben ein Submodul, kann es auch nicht sehen, die Rohre in das übergeordnete Modul in meinen Tests. Auch aus diesem Grund, Sie müssen die Rohre dort in eigenen separaten Modul.
Hier ist eine Zusammenfassung der Schritte, die ich nahm, um die Adresse Rohrleitungen nicht sichtbar in der submodule:
Anderen Fußnote zu den oben genannten "cross-Modul" Antwort: wenn ich die erstellt habe PipeModule ich entfernte die forRoot statische Methode und importiert PipeModule, ohne dass in meinem shared-Modul. Mein Grundverständnis ist, dass forRoot ist nützlich für Szenarien wie singletons, die nicht für Filter unbedingt.
InformationsquelleAutor der Antwort sarora
Hinweis : Nur, wenn Sie nicht mit eckigen Modulen
Das aus irgendeinem Grund nicht in die docs, aber ich hatte so importieren Sie benutzerdefinierte Rohr in der Komponente
InformationsquelleAutor der Antwort Sumama Waheed
Für Ionische können Sie Gesicht viele Probleme wie @Karl erwähnt. Die Lösung, die einwandfrei funktioniert für Ionische faul geladenen Seiten ist:
//pipes.ts-Gehalt (es können mehrere Rohre im inneren, nur daran denken,
//pipes.- Modul.ts-Gehalt
Gehören PipesModule in app.Modul und @NgModule Einfuhren Abschnitt
import { PipesModule } from "../pipes/pipes.module";
@NgModule({
imports: [
PipesModule
]
});
Gehören PipesModule in jedem Ihrer .- Modul.ts, wo Sie möchten, verwenden Sie benutzerdefinierte Rohre. Vergessen Sie nicht, fügen Sie es in Abschnitt imports.
//Beispiel. Datei: pages/my-custom-Seite/meine-eigene-Seite.- Modul.ts
import { PipesModule } from "../../pipes/pipes.module";
@NgModule({
imports: [
PipesModule
]
})
Thats it. Jetzt können Sie Ihre benutzerdefinierte Rohr in die Vorlage ein. Ex.
<div *ngFor="let prop of myObject | toArray">{{ prop.key }}</div>
InformationsquelleAutor der Antwort Timothy
Erstellt habe ich ein Modul für Rohre in das gleiche Verzeichnis, wo meine Pfeifen sind vorhanden
Nun importieren Sie das Modul in der app.Modul:
Nun kann es verwendet werden, durch den Import derselben in den verschachtelten Modul
InformationsquelleAutor der Antwort Amit Saini