ngModelChange上的无限循环

时间:2018-07-04 13:43:15

标签: ionic-framework

我有一个包含用户的列表,并且我有一个项目希望将其重定向到模式页面。 我的问题是页面可用后,我会无限弹出我的模态,而不是继续进行离子选择并选择项目,这样我就可以弹出了。

html

<ion-select interface="popover" (ngModelChange)="onChange($event)"> 
  <ion-option>Bacon</ion-option>
  <ion-option  [value]="openConfig()"></ion-option>Black Olives</ion-option>
  <ion-option>Extra Cheese</ion-option>
  <ion-option>Mushrooms</ion-option>
  <ion-option>Pepperoni</ion-option>
  <ion-option>Sausage</ion-option>
</ion-select>

ts

  onChange(value: any) {
    if (value === 'openConfig') {
      this.openConfig()
    }
  }

  openConfig() {
    this.modalCtrl.create('ConfigModal').present;
    console.log('heeey')
  }

1 个答案:

答案 0 :(得分:0)

在模板中设置[value]实际上是在调用openConfig()函数,从而在页面加载时创建无限循环。要执行此处要执行的操作,根本不需要在模板中引用openConfig函数。

ion-select使用输出事件ionChange,该事件输出所选ion-option的值。因此,在Ionic 3中执行此操作的正常方法如下:

html:

<ion-content padding> <ion-select interface="popover" [ngModel]="option" (ionChange)="onChange($event)"> <ion-option>Bacon</ion-option> <ion-option>Black Olives</ion-option> <ion-option>Extra Cheese</ion-option> <ion-option>Mushrooms</ion-option> <ion-option>Pepperoni</ion-option> <ion-option>Sausage</ion-option> </ion-select> </ion-content>

js:

onChange(value: any) {
  if (value === 'Black Olives') {
    this.openConfig()
  }
}

openConfig() {
  this.modalCtrl.create(ConfigModal).present();
}

请注意,ion-option的值只是标签的文本。这就是您应该在“ onChange”功能中检查的内容。

您还有其他一些无关的错别字,但是我相信这可以解决无限循环的问题。希望这会有所帮助!