Angular 如何将数据保存到5之外
我试图保存从http get请求接收的数据,并将其保存到属于该组件的另一个数组中Angular 如何将数据保存到5之外,angular,Angular,我试图保存从http get请求接收的数据,并将其保存到属于该组件的另一个数组中 getAlerts(){ this.ChatAlertsService.getAlerts() .subscribe((data) => { console.log('ngon Init', data); this.useralerts=data['result']; console.log('
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)}的操作。如果不是,那么需要更多的信息才能得到一个好的答案。我以前是这样做的,但现在我有一个问题,视图显示了以前访问过的组件,所以我认为可能是订阅导致的,这就是我问的原因