嗨,我想从父组件刷新我的时间戳记值。
我的parentComponent.ts
public updateComponent(){
this.timestamp = new Date();
this.timestamp.setDate(this.timestamp.getDate() - 30);
this.timestamp = this.timestamp.toJSON();
}
public ngOnInit() {
this.updateComponent();
interval(10000).subscribe(() => {
console.error('called');
console.error(this.timestamp);
this.updateComponent();
});
}
//my parent.component.html
<app-dashboard-card [refresh]="timestamp"></app-dashboard-card>
//When I catch my data
private ts: any;
@Input()
set refresh(timestamp: any) {
console.error("TIMESTAMP CHANGE -> ", timestamp);
this.ts = timestamp;
};
我不知道为什么在更改时间戳时我的@Input无法捕获。
答案 0 :(得分:0)
您的代码似乎仅使用setInterval()
就可以正常工作 here 。
建议:您无需使用setter here; 就可以实现相同的目的,只需将时间戳记添加到子组件中即可,如下所示-
@Input() timestamp: any;
ngOnChanges() {
console.log("TIMESTAMP CHANGE -> ", this.timestamp);
}
注意:请记住要检查控制台中的日志。
答案 1 :(得分:0)
ngOnChanges()
import { Input, SimpleChanges } from "@angular/core";
ngOnChanges(changes: SimpleChanges) {
if (changes['refresh']) {
//do something after value change
}
}