如何在 Ionic 3 中重置 Ion-Select 表单字段?
How to reset Ion-Select form field in Ionic 3?
我想提供一个选项,允许用户在已经 selecting 之后决定不 select 选项时清除 ion-select
表单字段,但我有很难找到任何帮助。
<ion-item class="formField ionField">
<ion-label color="primary" stacked>PROJECT</ion-label>
<ion-select
#projectName
ngModel
name="project"
interface="action-sheet">
<ion-option (ionSelect)="projectSelect(project.ProjectName,i)" [value]={ID:project.ID,Name:project.ProjectName} *ngFor="let project of projectArray; let i = index" >{{project.ProjectName}}</ion-option>
</ion-select>
</ion-item>
也许是这样的? Ionic 没有任何重置资源。
<ion-option (ionChange)="resetValue()">Reset</ion-option>
感谢任何帮助。
您不能使用 ion-option
重置 ion-select
表单域。但是,如果选择 ion-option
,您可以提供清除按钮来重置 ion-select
,如下所示。
HTML
<ion-content padding>
<ion-list>
<ion-item>
<ion-label>PROJECT</ion-label>
<ion-select [(ngModel)]="project">
<ion-option *ngFor="let project of projects" value="{{project}}">{{project}}</ion-option>
</ion-select>
</ion-item>
</ion-list>
<button *ngIf="project" ion-button (click)="reset()">clear</button>
</ion-content>
TS
export class HomePage {
projects: any = [];
project: string;
constructor() {
this.projects = ["project 1", "project 2", "project 3", "project 4"];
}
reset() {
this.project = null;
}
}
查找工作示例here
我想出的另一个选择是使用两个完全相同的 ion-select 并联使用它们由 ngIf 控制的渲染。如果 ngModel 有值,那么第一个 ion-select 被渲染,否则,第二个被渲染,因为在渲染一个新的 ion-select 时,它不会有任何 selected 选项默认情况下,它对(null 和非 null)ngModel 值都工作得很好。
我想提供一个选项,允许用户在已经 selecting 之后决定不 select 选项时清除 ion-select
表单字段,但我有很难找到任何帮助。
<ion-item class="formField ionField">
<ion-label color="primary" stacked>PROJECT</ion-label>
<ion-select
#projectName
ngModel
name="project"
interface="action-sheet">
<ion-option (ionSelect)="projectSelect(project.ProjectName,i)" [value]={ID:project.ID,Name:project.ProjectName} *ngFor="let project of projectArray; let i = index" >{{project.ProjectName}}</ion-option>
</ion-select>
</ion-item>
<ion-option (ionChange)="resetValue()">Reset</ion-option>
感谢任何帮助。
您不能使用 ion-option
重置 ion-select
表单域。但是,如果选择 ion-option
,您可以提供清除按钮来重置 ion-select
,如下所示。
HTML
<ion-content padding>
<ion-list>
<ion-item>
<ion-label>PROJECT</ion-label>
<ion-select [(ngModel)]="project">
<ion-option *ngFor="let project of projects" value="{{project}}">{{project}}</ion-option>
</ion-select>
</ion-item>
</ion-list>
<button *ngIf="project" ion-button (click)="reset()">clear</button>
</ion-content>
TS
export class HomePage {
projects: any = [];
project: string;
constructor() {
this.projects = ["project 1", "project 2", "project 3", "project 4"];
}
reset() {
this.project = null;
}
}
查找工作示例here
我想出的另一个选择是使用两个完全相同的 ion-select 并联使用它们由 ngIf 控制的渲染。如果 ngModel 有值,那么第一个 ion-select 被渲染,否则,第二个被渲染,因为在渲染一个新的 ion-select 时,它不会有任何 selected 选项默认情况下,它对(null 和非 null)ngModel 值都工作得很好。