Angular 角度8将管道注入另一管道不起作用
从Angular 7升级到Angular 8后,我的管道停止工作,出现错误:Angular 角度8将管道注入另一管道不起作用,angular,angular-pipe,angular-dependency-injection,Angular,Angular Pipe,Angular Dependency Injection,从Angular 7升级到Angular 8后,我的管道停止工作,出现错误: TypeError:undefined不可修改(无法读取属性符号(Symbol.iterator)) 10 |导出类APipe实现PipeTransform{ 11 | >12 |建造师( | ^ 13 |专用只读bPipe:bPipe, 14 |专用只读cPipe:cPipe{} 或有类似错误: Error: Found non-callable @@iterator 我的管道代码:
TypeError:undefined不可修改(无法读取属性符号(Symbol.iterator))
10 |导出类APipe实现PipeTransform{
11 |
>12 |建造师(
| ^
13 |专用只读bPipe:bPipe,
14 |专用只读cPipe:cPipe{}
或有类似错误:
Error: Found non-callable @@iterator
我的管道代码:
@管道({
名称:“aPipe”
})
导出类APipe实现了PipeTransform{
建造师(
专用只读bPipe:bPipe,
专用只读cPipe:cPipe){}
转换(someValue:any,args?:any):any{
如果(!someValue){
返回“-”;
}
如果(条件1){
返回此.bPipe.transform(someValue,…args);
}
否则{
返回此.cPipe.transform(someValue,…args);
}
返回“-”;
}
}
我必须在Angular8中将管道明确标记为@Injectable()
,还是有什么问题?编辑
在您的模块中提供:
管道是不可注射的。它们只是普通的类
这意味着,如果要将一个管道插入另一个管道,则可以使用
const cPipe = new CPipe(...);
这是错误的。您可以在组件、服务等中注入管道。这里有一个正在运行的stackblitz项目:
如果您选择将管道注入类,则必须在NgModule的providers数组中提供管道。
。不知道!()您是否将管道添加到模块的providers
数组中?