问题示例:http ://plnkr.co/edit/7FeRoyyqDnjXpV9Q9Vpy?p=preview
import {Component, NgModule} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
@Component({
selector: 'my-app',
template: `
<div>
<h2>{{myDate}}</h2> <!-- THIS UPDATES AS EXPECTED -->
<h2>{{myDate | date: 'longDate'}}</h2> <!-- THIS DOES NOT -->
<a (click)="prevMonth()" href="javascript:;">Previous Month</a>
<a (click)="nextMonth()" href="javascript:;">Next Month</a>
</div>
`,
})
export class App {
myDate: Date;
constructor() {
this.myDate = new Date();
}
nextMonth() {
this.myDate.setMonth(this.myDate.getMonth() + 1);
}
prevMonth() {
this.myDate.setMonth(this.myDate.getMonth() - 1);
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
当我在不使用任何管道的情况下传递我的变量时,它会按预期更新。但是同一变量的 DatePipe 格式的副本不会更新。管道是否仅针对可观察对象进行更新?或者我可以将它与标准日期类型一起使用并期望它实时更新吗?
我在 DatePipe API 中看不到任何暗示这是预期行为的内容,但我已将其范围缩小到只有 DatePipe 可能以这种方式影响行为的程度。 https://angular.io/docs/ts/latest/api/common/index/DatePipe-pipe.html