7

我已经按照《英雄之旅》教程进行操作,现在我正在修改项目。我的项目会有很多时钟和计时器,我的第一个任务是制作一个显示 UTC 时间的时钟。使用 MomentModule,我可以显示页面加载时间:

<p>{{ myDate | amDateFormat: 'ddd Do HH:mm:ss' }}</p>

但是,它不会像我想要的那样每秒更新一次。

我的仪表板组件如下所示:

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);
    }
}

所以首先,创建 new Date(); 是个好主意吗?每一秒?无论哪种方式,有没有办法通过诸如可观察的或类似的东西每秒更新我视图中的时间?就像我说的,当它完成时,我的页面上会有很多计时器和时钟。谢谢!

4

1 回答 1

21

您只需要使用而不是使用如下所示arrowfunction的传统语法,function callback

setInterval(() => {         //replaced function() by ()=>
  this.myDate = new Date();
  console.log(this.myDate); // just testing if it is working
}, 1000);
于 2017-03-13T04:36:49.383 回答