Html Ionic2视图未更新+;视频

Html Ionic2视图未更新+;视频,html,angular,ionic2,angular2-template,Html,Angular,Ionic2,Angular2 Template,我有以下问题,我的视图没有像应该的那样更新。如果玩家移动了触发器(我在当前游戏的每次更新中都会登录控制台),但视图不会定期更新。因此,我试图调查这个问题,并在Game.html[2]的页脚中添加了一个随机数,该随机数应每秒更新一次,以检查视图是否正确更新。但事实并非如此,所以每次随机值发生变化时我都会记录下来,这是有效的 我的整个游戏逻辑都在运行,如果我点击了一个无效的互动程序,什么都不会发生,如果我点击了一个有效的互动程序,Firebase正在更新,有时两个玩家的视图也会更新。。有时一个视图更

我有以下问题,我的视图没有像应该的那样更新。如果玩家移动了触发器(我在当前游戏的每次更新中都会登录控制台),但视图不会定期更新。因此,我试图调查这个问题,并在Game.html[2]的页脚中添加了一个随机数,该随机数应每秒更新一次,以检查视图是否正确更新。但事实并非如此,所以每次随机值发生变化时我都会记录下来,这是有效的
我的整个游戏逻辑都在运行,如果我点击了一个无效的互动程序,什么都不会发生,如果我点击了一个有效的互动程序,Firebase正在更新,有时两个玩家的视图也会更新。。有时一个视图更新,有时无更新此问题的视频:
你应该看看页脚,两个玩家对游戏的看法应该相同(除了轮到谁和随机页脚编号)



灰色字段==要单击的有效字段

[1] 检查更新

checkForUpdate(键):无效{
const query=firebase.database().ref(“/games”).child(键);
query.on('value',snap=>{
控制台日志(“更新”);
如果(!snap.val())返回;
this.updateTurn(snap.val().turn);
this.updatewon_字段(snap.val().won_字段);
this.updateFields(snap.val().fields);
this.updateNextField(snap.val().nextField);
});

}
为了触发更改检测,需要执行它 在他的区域内。 试试这个-

import { NgZone } from '@angular/core';

constructor(public zone: NgZone) {

    this.zone.run(() => {
        this.updateTurn(snap.val().turn);
        this.updatewon_Fields(snap.val().won_fields);
        this.updateFields(snap.val().fields);
        this.updateNextField(snap.val().nextField);
    });
}

你试过NgZone吗?@SwapnilPatwa我是爱奥尼亚的新手,所以我不知道该怎么检查?我创建的任何文件或app.component.t中都没有包含NgZone没有问题。与您共享工作代码。@'Swapnil Patwa'如果我的构造函数看起来像这样,我必须获得snap val?|编辑:gamestatus是在应用程序启动时创建的(键值还不可用),所以我可以把它放在gameStatusProvider中的initGame函数中吗?是的,我把pastebin.com/raw/djqkyrbK放在我的initMP函数中,一切都很好,非常感谢!