使用日期管道时,单向数据绑定不起作用



我正在使用日期对象来跟踪应用程序中的当前日期。

在我看来,我有一个这样的单向绑定:

<h3>{{ currentDate | date }}</h3>

在组件中,我有更改此日期的函数,如下所示:

previousMonth(){
   this.currentDate.setMonth(this.currentDate.getMonth() - 1);
}
nextMonth(){
   this.currentDate.setMonth(this.currentDate.getMonth() + 1);
}

但是,当触发这些函数时,视图上的currentDate值不会更新。

我确保日期对象正在更新,只是不在视图上。

每当我删除日期管道时,它都可以工作。

有人知道如何解决这个问题吗?

谢谢!

该值在视图中不会更新,因为默认情况下,角度中的管道是的(或无状态的(。这意味着,如果输入对象发生更改,则不会重新评估输入,而只会在替换输入时重新评估输入。

从文档中(请参阅纯管道和不纯管道部分(:

Angular 仅在检测到纯管道的纯更改时才执行 输入值。纯更改是对基元输入的更改 值(字符串、数字、布尔值、符号(或更改的对象引用 (日期、数组、函数、对象(。

请改为尝试以下代码:

previousMonth(){
   this.currentDate.setMonth(this.currentDate.getMonth() - 1);
   this.currentDate = new Date(this.currentDate);
}
nextMonth(){
   this.currentDate.setMonth(this.currentDate.getMonth() + 1);
   this.currentDate = new Date(this.currentDate);
}

相关内容

  • 没有找到相关文章

最新更新