表单值自服务以来未填充

时间:2018-08-28 12:12:14

标签: angular angular-forms

我正在Angular 5的材质弹出窗口中构建一个带有选择框和文本字段的表单。选择框值来自服务。但是,该服务花费了太多时间,在该表格出现之前,用户没有获得选择框值。仅在一段时间之后,才会填充选择框值。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

一种或另一种方式,您将不得不等待服务提取数据。

如果您的问题是用户可以在创建选项之前使用选择,则仅在一切准备就绪时才显示表单(或者,如果您希望更具体,请仅在选择其数据时显示选择)已获取)。

在组件中,您可以在其中获取数据:

<form [formGroup]="form" *ngIf="showForm">
    <!-- Your form template here -->
<form>

在您的模板中:

public form: FormGroup = null;

this.getDataService(param).subscribe((data) => {
    // All your logic here
    // Here, controls is your array of FormControl.
    this.form = new FormGroup(controls);
}

这样,当数据尚未到达时,您的表单将不会显示,并且一旦数据被获取并且表单已经完全构建,表单就会显示出来。

或者,您只能在获取数据后才能构建表单(这样,您就无需布尔值了):

<form [formGroup]="form" *ngIf="form">
    <!-- Your form template here -->
<form>

并在您的模板中:

CallLog.Calls