1

組み込みパイプはコンポーネントでは正常に機能していますが、カスタム パイプでは機能していません。これとは別に、私のパイプは問題なく動作しています。パイプをインポートしたので、何が問題なのかわかりません。

エラーのあるコードは次のとおりです。

import { Pipe, PipeTransform } from '@angular/core';
import { Perso } from './perso';

@Pipe({ name: 'startsWithPersoPipe' })
export class StartsWithPersoPipe implements PipeTransform {
  transform(Persos: Perso[], search:string){
    // without this if will crash as Persos is null until it gets its data from server
    if(Persos == null) {
      return null;
    }
    for(let perso of Persos){
      console.log(perso.nom); // works fine
      console.log(perso.nom | lowercase); // ORIGINAL EXCEPTION: ReferenceError: lowercase is not defined
    }
    return Persos.filter(p => (p.nom) && (p.nom).startsWith(search)); // works fine
  }
}
4

1 に答える 1

2
console.log(perso.nom | lowercase); 

動作するはずがありません。

| somePipe

バインディング式のテンプレートでのみサポートされます。

次のようなコードでパイプを使用できます

constructor(private lowercase: LowerCasePipe) {}

console.log(this.lowercase.transform(perso.nom)); 

あなたもインポートしませんLowerCasePipe

パイプを使用する代わりに、文字列でメソッドを呼び出すこともできます

perso.nom && perso.nom.toLowerCase() 
于 2016-08-16T11:11:50.623 に答える