Javascript 角度动态表单-使用异步数据失败

Javascript 角度动态表单-使用异步数据失败,javascript,angular,dynamic,Javascript,Angular,Dynamic,如果你熟悉这个 在我们的应用程序上下文中实现本食谱时,当我从硬编码数组中获取数据时,一切都很好,但现在当我已经调用异步方法(命中DB并获取)时,我遇到了问题。一定是因为我在研究可观测的东西,我不知道。应该作为@Input传递给处理动态表单的组件的数组似乎未定义。似乎我需要在将任何内容绑定到表单之前完成异步调用。这是我的密码: 对于服务: public getTechnicalSettingsList(extraHttpRequestParams?: any): Observable<Arr

如果你熟悉这个

在我们的应用程序上下文中实现本食谱时,当我从硬编码数组中获取数据时,一切都很好,但现在当我已经调用异步方法(命中DB并获取)时,我遇到了问题。一定是因为我在研究可观测的东西,我不知道。应该作为@Input传递给处理动态表单的组件的数组似乎未定义。似乎我需要在将任何内容绑定到表单之前完成异步调用。这是我的密码:

对于服务:

public getTechnicalSettingsList(extraHttpRequestParams?: any): Observable<Array<ITechnicalSetting>> {

  return this.getTechnicalSettingsWithHttpInfo(extraHttpRequestParams)

    .map((response: Response) => {
      if (response.status === 204) {
        return undefined;
      } else {
        return response.json();
      }
    });
}
ngOnInit(): void {
this._service.getTechnicalSettingsList().subscribe(technicals => {
    this.technicalSettings =  this._service.convertTechnicalSettingsToControls(technicals);

    console.log(this.technicalSettings);
});
}

HTML文件

<div class="container">
  <h2> Technical Settings</h2>
 <app-dynamic-form [technicalSettings]="technicalSettings"></app-dynamic-form>
</div>

技术设置

您是否尝试过将*ngIf=“technicalSettings”放入?您可以使用*ngIf as@JoeWu syas,也可以在类声明中初始化technicalSettings=[]。问题仍然存在@吴乔谢谢。。。我为这个实现了表单数组-一种不同的方法。。。但是Joe的回答修复了错误,因为没有定义对象。。谢谢