从模板中调用Angular 2中的对象函数抛出ORIGINAL EXCEPTION:TypeError:self.context。$ implicit.myFunction不是函数

时间:2016-08-22 12:25:07

标签: angular typescript

我有一个Mail模型对象:

export class Mail {
  id: string;
  tags: Array<String>;
  subject: string;

  constructor(data: any = {}) {
    this.id = data.id || null;
    this.subject = data.subject || null;
    this.tags = data.tags || null;
  }

  private indexOfFlagged() {
    return this.tags.indexOf('flagged');
  }

  public isEmpty(): boolean {
    return this.id == null;
  }

  public isStarred(): boolean {
    return this.indexOfFlagged() != -1
  }
}

以及以下模板:

<div *ngIf="!mail.isEmpty()">
  <h3>{{ mail.subject }}</h3>

  <div>
    <a class="fa" [class.fa-star-o]="!mail.isStarred()" [class.fa-star]="mail.isStarred()" click="toggleStar($event)"></a>
  </div>

  <div>
    <!-- body here -->
  </div>
</div>

通过isStarred()更新模型后,无法调用(click) event函数。模板第一次渲染时,一切都很好,并且可以调用该函数。有谁能告诉我为什么会发生这种情况?

我得到的只是控制台中的这个错误:ORIGINAL EXCEPTION: TypeError: self.context.$implicit.isStarred is not a function。问题是:当我使用属性而不是函数时,它运行良好。

我使用的是 angular-rc3

0 个答案:

没有答案