Angular2- Promise在访问属性时需要数组表示法

时间:2017-07-19 14:04:53

标签: javascript angular typescript

我有一个从promise接收数据的组件。该功能如下所示:

renderForm(selectedDate) {
  this._massEmpService.fetchTransitionFields(selectedDate)
    .then(results => {
      this.segments = results['segments']['options'];
      this.budgetMarkets = results['markets']['options'];
      this.roles = results['roles']['options'];
      this.languages = results['languages']['options'];
      this.incentivePlans = results['incentivePlans']['options'];
      this.hierarchy = results['hierarchy']['options'];
      this.fieldsLoaded = true;
      this.createForm(selectedDate);
    });
}

它将数据分配给接口,然后使用这些声明来填充下拉菜单。

我对服务的承诺是:

fetchTransitionFields(effectiveStartDate) {
    return new Promise((resolve, reject) => {
        this._http.post(this.baseUrl + '/fetchTransitionFields', { "effectiveStartDate": effectiveStartDate }, { "headers": this.headers })
            .map((result: Response) => result.json())
            .subscribe((results) => resolve(results.data));
    });
};

困扰我的是我必须使用括号表示法来访问承诺中的属性。当我尝试results.segments.options时,我收到错误[ts] Property 'segment' does not exist on type '{}'.

我做错了什么是迫使这个?如果它的“正常”那么一切都很好,但它就像应用程序中唯一一个使用这种风格来访问变量的地方,它一直引起我的注意。

0 个答案:

没有答案