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