如何检测Angular2中Date对象的变化?
使用setDate方法修改的date对象不会在模板中更新。
在模板中:
<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; }
有没有更好的方法来完成这个相同的任务?
我认为这是正确的方法,改变datevariables的引用。 从这里的文档我们有:
默认的更改检测algorithm通过在更改检测运行之间通过引用比较绑定属性值来查找差异。
所以如果date参考保持不变,什么都不会发生。 你需要一个新的date参考,这就是为什么nextDay()
的第二个版本工作。
如果您删除格式化pipe道,您将会看到仍然只有nextDay()
的第二个版本起作用。
- login后,在离子应用程序中保持用户会话的身份validation
- router_1.provideRouter在尝试运行Angular2 / NodeJS应用程序时不是函数
- 从(node – express – mongodb)获取db结果到angular4
- 平均堆栈安装在端口80或iis下
- 如何在Angularjs应用程序中从表中获取特定的单元格数据
- 将Angular 5项目转换为Angular Universal
- 在opentok示例中找不到模块“ejs”
- 有没有人创build了一个运行在IISNode下的Node.js,Angular2应用程序?
- Angular 2 RC与快速服务器而不是精简版服务器