Javascript 数据未绑定到angular4 typescript中的数组?

Javascript 数据未绑定到angular4 typescript中的数组?,javascript,arrays,angular,typescript,Javascript,Arrays,Angular,Typescript,我使用socket.io输入事件并将其推送到数组对象,现在我看到它被添加到数组中,但它没有更新或绑定到视图。如果单击该组件,然后我看到它被更新,我们是否在angular 4中有类似于ng blur的选项,以便我们可以完成此任务 secondConfigObject.data是我正在使用的数据网格的数据源 stream.component.ts ngOnInit() { this.socket.on('newMessage', (newEvent) => {

我使用socket.io输入事件并将其推送到数组对象,现在我看到它被添加到数组中,但它没有更新或绑定到视图。如果单击该组件,然后我看到它被更新,我们是否在angular 4中有类似于
ng blur
的选项,以便我们可以完成此任务

secondConfigObject.data
是我正在使用的数据网格的数据源

stream.component.ts

ngOnInit() {
        this.socket.on('newMessage', (newEvent) => {
            console.log('New Event', newEvent);
             this.sortArray(newEvent);
        });
}

sortArray(newEvent){
  var streamArray = this.secondConfigObject.data;
streamArray.push(Object.assign({},newEvent.data));

}

您可以使用ChangeDetectorRef手动触发

constructor(private cdr:ChangeDetectorRef) {
}

sortArray(newEvent){
  var streamArray = this.secondConfigObject.data;
  streamArray.push(Object.assign({},newEvent.data));
  this.cdr.detectChanges(); 
}

detectChanges()
每周拯救我一次生命,我以为我是天使大师……甚至不知道有像
ChangeDetectRef
这样的smth存在……非常感谢+1因此,在插入新事件时解决了部分问题,但在更新未更新的现有事件时,我必须在网格外单击是否需要执行以下操作`this.secondConfigObject.data=[…streamArray]`然后执行
detectChanges()
无论您需要做什么更改,请确保在检测到更改之前已经进行了更改您在标记答案方面有不良记录:)