离子2管道 - 未捕获错误:在MapToIterable(...)上找不到指令注释

时间:2016-11-14 22:32:16

标签: angular ionic2

我在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,但无论我做了什么,我仍然遇到这个错误。

有没有人有任何想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试仅在app.module.ts的声明数组中导入Pipe,而不在离子页面的entryComponents中导入。这对我有用。

@NgModule({
declarations: [
    AppComponent,
    ...,
    YourPipe
],
imports: [
    IonicModule.forRoot(AppModule)
],
bootstrap: [IonicApp],
entryComponents: [
    AppComponent,
    ...
],