Я бы рекомендовал использовать контроллер оповещений, чтобы упростить ваш код в вашем случае использования.Если вам нужен модал - вы можете разработать код позже.
Попробуйте этот подход:
<ion-header>
<ion-navbar>
<ion-title>
Ionic Blank
</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list *ngFor="let grocery of itemsArray; let i = index">
<ion-item (click)="changeItemName(grocery, i)">{{grocery}}</ion-item>
</ion-list>
<button ion-button round (click)="addItem()">Add Item</button>
</ion-content>
Поместите итератор в список и захватите «индекс» для каждого элемента, чтобы вы моглипередайте это значение, если какой-то конкретный элемент из списка щелкается вместе с фактическим названием продуктового элемента.
В вашем home.ts:
import { Component } from '@angular/core';
import { NavController, NavParams, AlertController, ViewController } from 'ionic-angular';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
public itemsArray = ["milk", "butter", "bread"];
newItem: any;
constructor(public navCtrl: NavController, public alertCtrl: AlertController, public navParams: NavParams) {
}
public changeItemName(currentName, index) {
let alert = this.alertCtrl.create({
title: 'Change grocery item name:',
message: 'current: "' + currentName + '"',
inputs: [
{
placeholder: 'type in a new name'
}
],
buttons: [
{
text: 'Cancel',
role: 'cancel',
},
{
text: 'Confirm',
handler: data => {
if (data[0].length === 0) {
this.itemsArray[index] = currentName;
} else {
this.itemsArray[index] = data[0];
}
}
}
]
});
alert.present();
};
public addItem() {
let index = this.itemsArray.length;
this.changeItemName("New item", index);
}
}
Вы можете использовать контроллер предупреждений, чтобы отобразить небольшое всплывающее окно.вверх с полем ввода.В коде вы увидите, что мы передаем ему параметры и изменяем имя элемента списка ИЛИ добавляем элемент в список, если метод изменения имени был вызван методом addItem.
Дайте мне знать, если это полезно для вас.
Вот рабочий фрагмент: https://stackblitz.com/edit/ionic-urbtag