当我尝试更新我的自定义组件的绑定模型时,我在Angular2网站上遇到了一些问题,这是一个来自数据源的调整。
我的自定义服务中包含以下内容:
public GetAllProcesses(): Promise<IProcess[]> {
return this._http.get('api/processes')
.toPromise()
.then(response => response.json() as IProcess[])
.catch(this.handleError);
}
然后我在我的组件中完成了以下操作:
export class ProcessesDashboardComponent implements OnInit{
bindedProcessesModel: any[] = [];
constructor(private _mycustomservice: MyCustomService) {}
ngOnInit() {
this.obtainProcesses();
}
obtainProcesses(): void {
this._mycustomservice.GetAllProcesses()
.then((processesServiceData) => {
let bindedAdjustedProcesses: any[] = [];
for(let process of processesServiceData)
{
let singleProcessAdaptedData: any;
singleProcessAdjustedData= {
"Process": process.Name,
"Status": process.Status
};
bindedAdjustedProcesses.push(singleProcessAdjustedData);
}
return bindedAdjustedProcesses;
})
.then(bindedAdjustedProcesses=> this.bindedProcessesModel)
.catch(errorMsg => {
error = errorMsg;
this.bindedProcessesModel = [];
});
}
出于某种原因,我没有承诺并且我无法访问我的组件变量,因为在任何回调的部分中,“this”总是未定义的。你能帮忙解决我做错的事吗?我能够正确检索数据,但看起来它无法将其分配给我的组件变量。
答案 0 :(得分:0)
如果您希望将Promise的结果分配给变量bindedProcessesModel,则应以这种方式调用 .then 方法:
.then((bindedAdjustedProcesses) => {
this.bindedProcessesModel = bindedAdjustedProcesses
})