【问题标题】:Angular 4 - Socket.io update view on emitted eventAngular 4 - Socket.io 更新已发出事件的视图
【发布时间】:2017-10-24 21:29:18
【问题描述】:

我的组件有以下代码

ngOnInit(): void {

    this.siteService.socket.on("users_online_now", function(usersOnlineNow){
        this.usersOnlineNow = usersOnlineNow;
        console.log(usersOnlineNow);
    });

}

即使 console.log 将数字打印到控制台,视图也不会更改为我的模板。还有比 BehaviourSubject 更简单的方法吗?

【问题讨论】:

    标签: angular socket.io observable


    【解决方案1】:

    你应该使用箭头函数(=>)而不是function

    ngOnInit(): void {
        this.siteService.socket.on("users_online_now", (usersOnlineNow) => {
            this.usersOnlineNow = usersOnlineNow;
            console.log(usersOnlineNow);
        });
    }
    

    否则this 不指向您的类实例。

    【讨论】:

    • 最后...这只是答案的一部分。我不得不注入“私人参考:ChangeDetectorRef”并调用“this.ref.markForCheck();”在我改变之后。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多