данные из сокета не отображаются - PullRequest
0 голосов
/ 22 марта 2019

Я получаю данные из сокета io, но не отображается на экране.

У меня есть эта функция в тс:

   socketIO.on('hello', (data) => { 
            console.log('data', data);
            this.mydata= data; 
        });

Данные в консоли показываются так:

data { "nr": "123456789456" }

в htm Nativescript:

<StackLayout >
        <Label [text]='mydata'></Label>
</StackLayout>

Как отобразить в поле зрения мои данные? В консоли данные отображаются правильно

Ответы [ 5 ]

1 голос
/ 22 марта 2019

Возможно, вам придется активировать обнаружение изменений после назначения https://angular.io/api/core/ChangeDetectorRef#markforcheck

class componant {
  constructor(private cdf:ChangeDetectorRef){}

socketIO.on('hello', (data) => { 
            console.log('data', data);
            this.mydata= data; 
this.cdf.markForCheck()
        });

}
0 голосов
/ 22 марта 2019

Убедитесь, что вы работаете внутри ngZone

....

constructor(private zone:NgZone) {
    super()
}

    ....
    socketIO.on('hello', (data) => { 
        this.zone.run(()=> {
           console.log('data', data);
           this.mydata= data;
        }); 
    });
0 голосов
/ 22 марта 2019

Можете ли вы попробовать вот так

TS:

    mydata: any;
    const self = this;
    socketIO.on('hello', (data) => { 
        console.log('data', data);
        self.mydata= data; 
    });

HTML:

    <StackLayout>
       <Label [text]='mydata'></Label>
    </StackLayout>

Дайте мне знать, если это работает

0 голосов
/ 22 марта 2019

Из вывода консоли я вижу, что data - это объект.Разве ввод [text] в <Label> не должен быть строкой?

0 голосов
/ 22 марта 2019

вы можете использовать привязку следующим образом -


<StackLayout >
        <Label text= {{ mydata }}></Label>
</StackLayout>

Дайте мне знать, если это работает.

Для дальнейшего чтения прочитайте документы здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...