在我的自定义管道中使用内置管道时出错
Error using built-in pipe in my custom pipe
内置管道在我的组件中工作正常,但在我的自定义管道中却不行。
除此之外,我的管道工作正常。自从我导入了 Pipe 后,我看不出可能是什么问题。
这里是有错误的代码:
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
}
}
console.log(perso.nom | lowercase);
不应该工作。
| somePipe
仅在绑定表达式的模板中受支持。
您可以在代码中使用管道,例如
constructor(private lowercase: LowerCasePipe) {}
console.log(this.lowercase.transform(perso.nom));
你也不导入LowerCasePipe
除了使用管道,您还可以只调用字符串上的方法
perso.nom && perso.nom.toLowerCase()
内置管道在我的组件中工作正常,但在我的自定义管道中却不行。 除此之外,我的管道工作正常。自从我导入了 Pipe 后,我看不出可能是什么问题。
这里是有错误的代码:
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
}
}
console.log(perso.nom | lowercase);
不应该工作。
| somePipe
仅在绑定表达式的模板中受支持。
您可以在代码中使用管道,例如
constructor(private lowercase: LowerCasePipe) {}
console.log(this.lowercase.transform(perso.nom));
你也不导入LowerCasePipe
除了使用管道,您还可以只调用字符串上的方法
perso.nom && perso.nom.toLowerCase()