Angular 如何从套接字异步获取数据并将其显示在页面上?

Angular 如何从套接字异步获取数据并将其显示在页面上?,angular,angular6,angular8,Angular,Angular6,Angular8,有几个变量: public message: any; 然后,在模板中,我尝试显示消息,如果它不是空的: <div *ngIf="message">Message</div> 我在console.log(数据)中获取数据但消息未在模板中呈现。消息 <div *ngIf="message && Object.keys(message).length > 0">Message</div> 试试这个。消息 试试这个。您可以

有几个变量:

public message: any;
然后,在模板中,我尝试显示消息,如果它不是空的:

<div *ngIf="message">Message</div>
我在
console.log(数据)中获取数据但消息未在模板中呈现。

消息
<div *ngIf="message && Object.keys(message).length > 0">Message</div>
试试这个。

消息

试试这个。

您可以使用NgZone在区域中显式运行此代码

 constructor(private zone: NgZone)  {}

 public connect(options: any) {
   // custom code
   [...]

  // socket event
  this.socket.on('receivePassportData', (data) => {
    this.zone.run(() => {
        this.message = data;
    });     
  });
 }
如需更多帮助,请查看

另外,我想建议您创建一个

  • 订阅服务器提供的数据流的角度服务
  • 创建订阅服务器提供的数据流的Angular服务
  • 将角度服务(从服务)中接收的数据发送给可观察的订户
  • 然后订阅组件ngOnInit方法中可观察到的服务
  • 如需更多帮助,请查看


    希望这对你有帮助

    您可以使用NgZone在区域中显式运行此代码

     constructor(private zone: NgZone)  {}
    
     public connect(options: any) {
       // custom code
       [...]
    
      // socket event
      this.socket.on('receivePassportData', (data) => {
        this.zone.run(() => {
            this.message = data;
        });     
      });
     }
    
    如需更多帮助,请查看

    另外,我想建议您创建一个

  • 订阅服务器提供的数据流的角度服务
  • 创建订阅服务器提供的数据流的Angular服务
  • 将角度服务(从服务)中接收的数据发送给可观察的订户
  • 然后订阅组件ngOnInit方法中可观察到的服务
  • 如需更多帮助,请查看


    希望这对你有帮助

    你把一个对象赋予一个字符串属性对不起,更新了,它是对象,不是字符串我不知道为什么Angular没有呈现这个变量我可以分享完整的代码你在使用rxjs吗?你把一个对象赋予一个字符串属性对不起,更新了,它是对象,不是stringI我不知道Angular为什么不渲染这个varaible我可以分享完整的代码你在使用rxjs吗?