我在应用程序中使用了“时刻”,它以这种方式显示“ X分钟前”标签:
{{comment.created_at | amTimeAgo}}
分钟数会自动更新(1分钟后将是X-1分钟)。
当我离开应用程序时,我正在尝试访问它,但是出现以下错误:
platform-browser.umd.js:962 ORIGINAL EXCEPTION: Expression has changed after it was checked. Previous value: '8 Minutes ago'. Current value: '9 Minutes ago'
Run Code Online (Sandbox Code Playgroud)
我通过一种方法从API读取数据(日期)一次。
searchPeople(name)
{
this.loading = true;
this.http.get(this.BASE_URL + 'mode=search&name='+name)
.map((res:Response) => res.json())
.subscribe(
data => {
this.loading = false;
this.people = data;
this.searchedName = name;
},
error => {
console.log(error.text());
}
);
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
该问题是由于管道amTimeAgo为相同的输入返回不同的输出而引起的。显然,随着时间的推移,您将comment.create_at与进行比较,这会导致不同的输出。Date.now()
这是一个不纯的管道,你需要通过设置告诉 Angular pure: false:
@Pipe({
name: 'amTimeAgo',
pure: false
})
class AmTimeAgoPipe {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2843 次 |
| 最近记录: |