Бесконечный цикл на ngModelChange - PullRequest
0 голосов
/ 04 июля 2018

У меня есть список, содержащий пользователей, и у меня есть пункт, который я хочу перенаправить на модальную страницу. Моя проблема в том, что, как только моя страница становится доступной, я получаю бесконечное всплывающее окно с моим модом, вместо того, чтобы продолжать мой выбор иона и выбрать элемент, чтобы я мог получить всплывающее окно.

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>

ц

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

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

1 Ответ

0 голосов
/ 04 июля 2018

Установка [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>

ЯШ:

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

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

Обратите внимание, что значение ion-option - это просто текст метки. Это то, что вы должны проверить в своей функции "onChange".

У вас есть несколько других несоответствующих опечаток, но я считаю, что это решает вопрос вашего бесконечного цикла. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...