angular - *ngFor 添加空格以选择 Angular 形式
问题描述
在 Angular 表单中使用 *ngFor 循环会在选择项之前和之后添加空格。这会导致下游代码出错,因为它很难在选择中修补或设置值(即从用于预填充表单的数据库中存储的值)。角版本 12.1.4。
如果我只是在离子选择中手动输入数据,则不会发生这种情况。
所以有两个问题:为什么会发生这种情况以及如何摆脱这种行为?
home.page.ts:
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators } from "@angular/forms";
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
public nameForm = new FormGroup({
name: new FormControl('', Validators.required),
name1: new FormControl('', Validators.required),
});
nameList: string[] = ['Louise','Nancy','Kate'];
constructor(){}
public onSubmit() {
console.log("Does name1 have whitespace???", this.nameForm.value);
}
}
主页.html
<ion-content>
<form [formGroup]="nameForm" (ngSubmit)="onSubmit()">
<ion-item>
<ion-label>Choose name</ion-label>
<ion-select formControlName="name">
<ion-select-option>Louise</ion-select-option>
<ion-select-option>Nancy</ion-select-option>
<ion-select-option>Kate</ion-select-option>
</ion-select>
</ion-item>
<ion-item>
<ion-label>Choose name1</ion-label>
<ion-select formControlName="name1">
<ion-select-option *ngFor="let n of nameList">
{{n}}
</ion-select-option>
</ion-select>
</ion-item>
<button type="submit">Submit</button>
</form>
</ion-content>
home.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { IonicModule } from '@ionic/angular';
import { FormsModule } from '@angular/forms';
import { ReactiveFormsModule } from '@angular/forms';
import { HomePage } from './home.page';
import { HomePageRoutingModule } from './home-routing.module';
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
IonicModule,
HomePageRoutingModule
],
declarations: [HomePage]
})
export class HomePageModule {}
控制台日志输出:
name1 有空格吗???{name:'路易丝',name1:'路易丝'}
解决方案
更新:我想知道这是否是我完成 html 的方式中的一个新行问题。是的,如果它改为:
<ion-select-option *ngFor="let n of nameList">{{n}}</ion-select-option>
我得到没有空格的值!
name1 有空格吗???{name:“路易丝”name1:“路易丝”}
推荐阅读
- javascript - 通过构造函数传递变量时出错
- android - Acces a complex json object in Ionic 3 and bind to view
- c# - C# Slotmachine 获胜算法
- php - 在 Woocommerce 中的条件自定义结帐字段上显示现有值
- ios - 错误 ITMS-90715:“最低操作系统太低
- c# - 是否可以观察布尔值直到变化?(C#)
- solr - Solr 在父文档和子文档中搜索和评分
- objective-c - 如何关闭全屏 UIImageView?
- android - 从应用程序 android 打开当前正在进行的呼叫
- mqtt - 如何在 mqtt mosquitto 中发布从订阅经纪人获取的数据?