Angular模板表达式调用中的更改检测功能次数过多

时间:2017-11-17 02:01:11

标签: angular date data-binding angular2-changedetection

我的角度应用中的日期都是这样的:

{{ stringAsDate(entry.followUpDate) | date:"yMdjm" }}

stringAsDate函数如下所示:

stringAsDate(dateStr: any) {
    if(dateStr != null){
        return new Date(moment(dateStr).seconds(0).milliseconds(0).toISOString());
    }
}

stringAsDate()函数必须在所有浏览器中具有相同的日期。 (我得到了不一致,因为不同的浏览器以不同的方式评估新的Date()。)无论如何,这都有效。但是,每次更改检测(每次点击等)都会调用stringAsDate(),因此应用程序的性能非常糟糕,因为我在这些地方都有这些日期。

有没有办法避免多次调用stringAsDate()?

1 个答案:

答案 0 :(得分:0)

在Angular4中,在名称之前的函数声明中放置 get 关键字,以便您能够将模板中的该函数作为属性引用(在花括号内)。