我有一个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 。