javascript – 如何在Angular2中使用Date对象检测更改?

前端之家收集整理的这篇文章主要介绍了javascript – 如何在Angular2中使用Date对象检测更改?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用setDate方法修改的日期对象未在模板中更新.

在模板中:

<p>{{date | date:'mediumDate'}}</p>

在组件中:

nextDay(){
    this.date.setDate(this.date.getDate()+1);
  }

但是当我调用nextDay函数时,模板不会使用新值更新.

我可以让变更检测工作的唯一方法是这样做:

nextDay(){
    var tomorrow = new Date();
    tomorrow.setDate(this.date.getDate()+1);
    this.date = tomorrow;
  }

有没有更好的方法来完成同样的任务?

解决方法

我认为这是改变日期变量引用的正确方法.从文档 here我们得到:

The default change detection algorithm looks for differences by comparing bound-property values by reference across change detection runs.

因此,如果日期参考保持不变,则不会发生任何事情.你需要一个新的Date引用,这就是nextDay()的第二个版本工作的原因.

如果删除格式化管道,您将看到仍然只有第二个版本的nextDay()工作.

原文链接:https://www.f2er.com/js/157976.html

猜你在找的JavaScript相关文章