Javascript Nativescript+;角度2聊天室服务

Javascript Nativescript+;角度2聊天室服务,javascript,angular,typescript,nativescript,Javascript,Angular,Typescript,Nativescript,我有麻烦了。 在这里我让我的代码。 在我的应用程序中,我连接到firebase云消息服务,在appComponent中,我监听firebise通过DataInterchage.service发送和发出数据内容的消息,在chatComponent中,我订阅发出的事件并处理数据 问题是下一个。接收数据时,我将this.messeges变量设置为数据内容,但视图不更新 您认为这是什么?当您设置此项时。消息您的代码可能正在运行,因为该代码是在服务回调中编写的。这就是为什么当您为变量赋值时,它不会更新视

我有麻烦了。 在这里我让我的代码。

在我的应用程序中,我连接到firebase云消息服务,在appComponent中,我监听firebise通过DataInterchage.service发送和发出数据内容的消息,在chatComponent中,我订阅发出的事件并处理数据

问题是下一个。接收数据时,我将this.messeges变量设置为数据内容,但视图不更新


您认为这是什么?

当您设置此项时。消息您的代码可能正在运行,因为该代码是在服务回调中编写的。这就是为什么当您为变量赋值时,它不会更新视图

尝试在区域内运行代码。之后,您的视图将成功更新

对于您的代码片段,将

import {NgZone,ChangeDetectorRef} from "@angular/core";
export class ChatComponent  implements OnInit{

constructor(
    private zone: NgZone,
    private cd: ChangeDetectorRef,
) {}
ngOnInit() {
    this.user = JSON.parse(appStorage.getString("user_info"));
    this.me = {
        id: this.user.id,
        name: this.user.full_name,
        pictureUrl: this.user.icon
    };
    this.other = {
        id: "",
        name: "",
        pictureUrl: "",
        coverUrl: ""
    };

    this.emitter.msgRecived$
        .subscribe(data => {
            data = JSON.parse(data);

            this.http.get(`${ env['api_route'] }/api/users/${ data.user }`)
                .subscribe((res: Response) => {
                    let user = res.json().data;

                    this.other = {
                        id: user.id,
                        name: user.full_name,
                        pictureUrl: user.icon,
                    };
                    this.zone.run(()=>{
                        this.messages.push({
                            sender: this.other,
                            content: data.message,
                            date: data.date
                        });
                    });

                    console.dump(this.other);
                    console.dump(this.messages)

                }, (err: Response) => {
                    this.oauth.isLogged(err);
                });
        });
    }
}

您使用的是列表视图吗?是的,它位于我传递的链接中,位于Chat.Component.htmly文件中。您需要手动调用列表视图刷新功能。列表视图不是问题所在。问题是变量改变了他的值,但没有更新视图。Ej:this.messeges=“hola”在视图中//hola。this.messeges=data//data=“hola mundo”,在视图中//hola。变量更改了其值,但数据绑定不起作用
列表视图不是问题
不更新视图
。是的,如果数据正在更新,但是视图没有更新,这就是列表视图问题。我以前有过这个问题