angular - 表单值未填充,因为来自服务
问题描述
我正在 Angular 5 中在带有选择框和文本字段的材料弹出窗口中构建一个表单。选择框值来自服务。但是,该服务花费了太多时间,并且在该表单出现之前,用户没有获得选择框的值。仅在一段时间后才会填充选择框值。我该如何解决这个问题?
解决方案
无论哪种方式,您都必须等待您的服务获取数据。
如果您的问题是用户可以在创建选项之前使用选择,请仅在一切准备就绪时显示表单(或者如果您想更具体,仅在已获取其数据时显示选择)。
在您的组件中,您获取数据的位置:
public showForm = false;
this.getDataService(param).subscribe((data) => {
// All your logic here
this.showForm = true;
}
在您的模板中:
<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>
推荐阅读
- python - Python 每 X 秒运行一次程序?
- python-3.x - 将数据从一个 pandas 数据帧附加到另一个数据帧
- android - 如何解决 Android Studio Emulator 上的此错误“AVD Pixel_XL_API_30 的模拟器进程已被杀死”
- php - 在 WooCommerce 中移动单个产品星级评分
- spotfire - Spotfire - 根据计算列条件创建 KPI
- maven - 从自定义模块中排除包
- android - React-Native 应用程序在构建时抛出 SHA-1 错误
- javascript - 滚动期间未调用 React eventListener(React)
- reactjs - 在 reactjs 中显示数组数据
- javascript - React Context 没有定义 no-undef