Angular 如何将数据保存到5之外

Angular 如何将数据保存到5之外,angular,Angular,我试图保存从http get请求接收的数据,并将其保存到属于该组件的另一个数组中 getAlerts(){ this.ChatAlertsService.getAlerts() .subscribe((data) => { console.log('ngon Init', data); this.useralerts=data['result']; console.log('

我试图保存从http get请求接收的数据,并将其保存到属于该组件的另一个数组中

getAlerts(){
 this.ChatAlertsService.getAlerts()
        .subscribe((data) => {
                console.log('ngon Init', data);
                this.useralerts=data['result'];
                 console.log('inside subscribe user_alerts', this.useralerts);

            },
            (error) => console.log(error));
    console.log('outside subscribe user_alerts', this.useralerts);
};
这是函数的主要调用:

ngOnInit() {
        this.getAlerts();

        this.tableData1 = {
            headerRow: ['ID', 'Alert Text', 'Type', 'CreatedAt'],
            dataRows: this.useralerts
                  };
        console.log(this.tableData1.dataRows);   
    }
我在订阅中传递数据,如下所示:

this.tabledata1.dataRows=this.useralerts;
这有助于我预览表组件中的数据,但我在主页中获得了以前访问过的组件(就像订阅中的路由器模块stcuk) 当我删除该行时,我无法将GET请求中的数据保存到数组
TableData1.datarows

这是我的控制台中显示的屏幕截图:

如图所示,数据在subscribe内部成功保存,但在subscribe外部为“未定义”

你能给我一个解释吗?我已经被困了两天了

这是我在布线和显示方面面临的pbm预览:

我也遇到了类似的问题,我解决的方法是在subscribe之外调用一个set函数,在您的情况下是这样的:

getAlerts(){
 this.ChatAlertsService.getAlerts()
        .subscribe((data) => {
                console.log('ngon Init', data);
                this.setUsersArray(data['result']);
                 console.log('inside subscribe user_alerts', this.useralerts);

            },
            (error) => console.log(error));
    console.log('outside subscribe user_alerts', this.useralerts);
};

setUsersArray(data){
   this.useralerts= data;
}

事情是异步发生的,
console.log(this.tableData1.dataRows)行在服务器响应返回之前发生。您应该将
this.tableData1
的设置移动到订阅内部以解决此问题。如果您的问题是视图未正确更新,请尝试类似{(useralerts | async)}的操作。如果不是,那么需要更多的信息才能得到一个好的答案。我以前是这样做的,但现在我有一个问题,视图显示了以前访问过的组件,所以我认为可能是订阅导致的,这就是我问的原因