我在Ionic 2中试图使用管道时遇到了问题。这是我的错误:
Uncaught Error: No Directive annotation found on MapToIterable(…)
我使用Ionic 2 CLI生成了一个管道并编辑了它以完成一些功能,我可以通过* ngFor迭代对象的对象。这是我的管道代码:
import { Injectable, Pipe } from '@angular/core';
@Pipe({
name: 'mapToIterable'
})
@Injectable()
export class MapToIterable {
transform(value: any): any {
if(value === null) {
return null;
} else {
return Object.keys(value).map(key => value[key]);
}
}
}
这是我模板中的* ngFor循环:
<div *ngFor="let video of (user.videos | mapToIterable)">
<img src="{{video.thumbnail}}" />
</div>
我不确定为什么我会遇到这个问题。我已经在我的@NgModule声明中正确导入了Pipe,但无论我做了什么,我仍然遇到这个错误。
有没有人有任何想法?
谢谢!
答案 0 :(得分:1)
您可以尝试仅在app.module.ts的声明数组中导入Pipe,而不在离子页面的entryComponents中导入。这对我有用。
@NgModule({
declarations: [
AppComponent,
...,
YourPipe
],
imports: [
IonicModule.forRoot(AppModule)
],
bootstrap: [IonicApp],
entryComponents: [
AppComponent,
...
],