如何在ionic2

时间:2016-10-18 05:47:09

标签: angular ionic2

基本上我正在尝试制作一个注册表单,其中有一些下拉列表。我想对它应用“(更改)”事件,它会在值发生变化时触发一个函数,或者我们可以说从该下拉列表中选择值,并根据我将动态分配下一个字段但此事件是当它与文本字段一起工作正常时,不工作下拉列表。 有人可以帮我解决这个问题吗?

示例代码:

home.html - >

<ion-header>
  <ion-navbar>
    <ion-title>Home</ion-title>
  </ion-navbar>
</ion-header>
<ion-content padding>

<form [formGroup]="myForm">   
    <ion-item>
        <ion-label>Dropdown1 :</ion-label>
        <ion-select formControlName="dd" (ionChange)='f()'  #dd>
         <ion-option value='1'>A</ion-option>
            <ion-option value='2'>B</ion-option>
            <ion-option value='3'>C</ion-option>
            <ion-option value='4'>D</ion-option>
        </ion-select>
    </ion-item>

     <ion-item>
    <ion-label>Dropdown2 :</ion-label>
    <ion-select>
     <ion-option value='1'>E</ion-option>
        <ion-option value='2'>F</ion-option>
        <ion-option value='3'>G</ion-option>
        <ion-option value='4'>H</ion-option>
    </ion-select>
</ion-item>

</form> 
</ion-content>

home.ts - &gt;

import { Component } from '@angular/core';

import { NavController } from 'ionic-angular';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(public navCtrl: NavController) {

  }

  function f(){
  alert('Value Changed!');
  alert(this.myForm.dd);

  }

}

2 个答案:

答案 0 :(得分:16)

您可以使用ngModel

<ion-select ngModel (ngModelChange)='f()' name="xxx">

我不确定是否需要ngModel部分来完全应用ngModel。您可以尝试删除它,看看它是否仍然有效。

三个似乎也是一个ionChange事件

<ion-select (ionChange)='f()' name="xxx">

http://ionicframework.com/docs/v2/api/components/select/Select/

答案 1 :(得分:3)

您可以在ion-option上使用ionSelect,每次选择项目时都会触发。

Ionic docs ion-option

<ion-select>
    <ion-option (ionSelect)="optionSelected($event)" *ngFor="let item of items$ | async" [value]="item.id">{{item.name}}</ion-option>
</ion-select>