我在Angular 2.0中有关于双向绑定的问题。 在我看来,我会显示所选日期(月份和年份)+当月的天数。 有按钮可以进入下个月或上个月。 但是当我点击它们时,显示的日期没有更新,但它在模型中成功更新。并且正确更新了月中的日期(使用ngFor)。 有人知道在视图中更新日期的正确方法吗?
查看:
<span>
{{date | date:'MMMM yyyy'}}
</span>
<button (click)="goToPreviousMonth()">Previous month</button>
<button (click)="goToNextMonth()">Next month</button>
<div *ngFor="#week of weeks">
<!-- Show days -->
</div>
组件:
import {Component} from 'angular2/core';
import {CORE_DIRECTIVES, NgModel} from 'angular2/common';
@Component({
selector: 'monthview',
templateUrl: './monthview.html',
directives: [CORE_DIRECTIVES]
})
export class MonthView {
weeks:any = [];
date:Date;
public goToMonthFromCurrent(addMonth:number) : void {
// Update date
this.date.setMonth(this.date.getMonth() + addMonth);
// Some other code to calculate days of month...
// This will update the date in view
this.date = new Date(this.date.getTime());
}
public goToNextMonth() : void {
this.goToMonthFromCurrent(1);
}
public goToPreviousMonth() : void {
this.goToMonthFromCurrent(-1);
}
}
答案 0 :(得分:0)
如果更改对象的属性,则角度更改检测无法识别更改。 Angular仅比较对象实例的标识。
创建一个新的Date
实例,而不是更改现有的实例。