私はヒーローズツアーのチュートリアルを実行しましたが、現在プロジェクトの変更を行っています。私のプロジェクトにはたくさんの時計とタイマーがあり、最初の仕事はUTC時間を表示する時計を作ることです。 MomentModuleを使用すると、ページの読み込み時間を次のように表示できます。
<p>{{ myDate | amDateFormat: 'ddd Do HH:mm:ss' }}</p>
ただし、毎秒更新されるわけではありません。
私のDashboardComponentは次のようになります。
export class DashboardComponent implements OnInit {
heroes: Hero[] =[];
myDate: Date;
constructor(private heroService: HeroService) {}
ngOnInit(): void {
this.heroService.getHeroes()
.then(heroes => this.heroes = heroes);
this.utcTime();
}
utcTime(): void {
setInterval(function() {
this.myDate = new Date();
console.log(this.myDate); // just testing if it is working
}, 1000);
}
}
まず最初に、新しいDate()を作成することは良い考えです。毎秒?いずれにせよ、オブザーバブルなどのようなものを介して私のビューの時間を毎秒更新する方法はありますか?先ほど言ったように、ページが完成すると、たくさんのタイマーと時計がページに表示されます。ありがとう!
以下に示すように、従来のfunction callback
構文を使用する代わりに、arrowfunction
を使用する必要があるだけです。
setInterval(() => { //replaced function() by ()=>
this.myDate = new Date();
console.log(this.myDate); // just testing if it is working
}, 1000);
export class DateComponent implements OnInit {
dateMessage : String;
constructor() {
setInterval(() => {
let currentDate=new Date();
this.dateMessage = currentDate.toDateString()+' '+ currentDate.toLocaleTimeString();
}, 1000);
}