簡體   English   中英

無法在Angular2 Promise回調和ES6中更新組件變量

[英]Cannot update component variables inside Angular2 promise callback & ES6

當我嘗試更新自定義組件的綁定模型之一時,我在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”。 您能協助我做錯什么嗎? 我能夠正確檢索數據,但看起來無法將其分配給組件的變量。

如果你要分配的無極可變bindedProcessesModel的結果,你應該調用的方法。那么以這種方式:

.then((bindedAdjustedProcesses) => {
this.bindedProcessesModel = bindedAdjustedProcesses
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM