如何检测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()
的第二个版本起作用。
- 将页面的几个元素存储到JSON对象
- 错误:未被捕获(承诺):错误:GoogleMaps没有提供者
- 如何检查一个元素是否与量angular器不可点击?
- 如何使用Restler Rest客户端库而不是Angular / HTTP
- 全新安装npm和节点
- 在angular2快速入门指南中使用lite-server打开非默认浏览器
- 如何将FormData从Angular 2发送到nodejs?
- lb-ng loopback命令返回“Can not read property”apply as of undefined“from async module
- 使用Typescript设置一个带有Angular 2前端的Node.js js服务器