【发布时间】:2017-08-11 17:36:07
【问题描述】:
当我尝试更新我的自定义组件的一个绑定模型时,我在 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”。你能帮忙解决我做错了什么吗?我能够正确检索数据,但它似乎无法将其分配给我的组件的变量。
【问题讨论】:
-
bindedAdjustedProcesses=> this.bindedProcessesModel我认为你不想放弃bindedAdjustedProcesses。 -
我正在开发 ES5,这可能是问题所在吗?在这种情况下应该有什么解决方法?
-
我不确定你想要达到什么目标,但你可能想要
bindedAdjustedProcesses=> { this.bindedProcessesModel = bindedAdjustedProcesses;} -
我已经尝试过了,它会在浏览器中引发无限循环...我还尝试先投入使用,然后只在组件中收集响应,但效果不佳
标签: javascript angular ecmascript-6 promise angular2-services