Установка [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".
У вас есть несколько других несоответствующих опечаток, но я считаю, что это решает вопрос вашего бесконечного цикла. Надеюсь, это поможет!