【发布时间】:2018-11-01 23:24:53
【问题描述】:
我有很多这样的例子。使用 FormGroup,Ion Select,该值始终设置正确,但在我手动打开选择并关闭它之前什么都没有显示。这种行为使响应式表单对于编辑或更新完全无用,这实际上意味着它是无用的。我没有任何不需要选择的表单,虽然它可以很好地插入新值,但这意味着我已经构建了一个用于插入的表单和另一个完全不同的用于更新的表单。
我将在这里粘贴一些代码,但我相信使用 Ionic 3 的每个人都已经看到了这个问题。什么时候修复,有解决方法吗?
<ion-content>
<div *ngIf="loginForm">
<form [formGroup]="loginForm" (submit)="doLogin()">
<ion-list>
<ion-item *ngIf="lookupsProvider">
<ion-label fixed>{{ 'PHONE_COUNTRY_CODE' | translate }}</ion-label>
<ion-select type="input" name="country_id" formControlName="country_id">
<ion-option *ngFor="let country of lookupsProvider.lookupData['countrys']"
value="{{ country['id'] }}">
<ion-item>
{{ this.optionText(country) }}
</ion-item>
</ion-option>
</ion-select>
</ion-item>
....当然还有其他输入
在 .ts 文件中
_buildForm() {
this.loginForm = this.formBuilder.group({
country_id: [this.settingsProvider.settings['USER_ID'], Validators.required],
main_phone: ['', Validators.required],
password: ['', Validators.required]
});
this.loginForm.valueChanges.subscribe((v) => {
console.log('Login loginForm.valueChanges: ' + v);
});
}
正如我提到的,值设置正确,但用户看到的只是一个空白选择...这是登录表单,但我们知道用户的国家,所以我们希望他们不必选择它.因为该值没有显示,用户最终不得不选择它以确保它被设置。
【问题讨论】:
-
@YuvrajPatil 不同意这个问题是重复的。您链接的问题使用
[(ngModel)]OP 不想使用,因为他正在使用表单。 -
嘿@bgies,不知何故
ion-select仅适用于*ngFor和(value)="js_variable"。不适用于表达式值value="{{ js_variable }}" -
@Priya 你基本上是正确的。我终于能够通过不使用静态离子选项来修复我的选择,将值和 displayValue 放入一个数组并使用 *ngFor 循环它们......