Модал меняет информацию о моей сетке (визуально), когда я нажимаю близко или когда я меняю фокус. Я уже пытался создать временную переменную, но она все еще не работает. Я не знаю, как решить эту проблему.
Я не хочу терять информацию, когда редактирую что-то и нажимаю сохранить, чтобы отобразить это. Я делаю это так, чтобы мне не приходилось вызывать свой веб-сервис при каждом отдельном редактировании.
modal.page.ts
import { Component, OnInit, Input, SkipSelf } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { ProductoDetalle } from '../models/productoDetalle.model';
import { AlertController } from '@ionic/angular';
@Component({
selector: 'app-modal',
templateUrl: './modal.page.html',
styleUrls: ['./modal.page.scss'],
})
export class ModalPage implements OnInit {
row;
arreglo = ['end_date_active', 'start_date_active', 'fecha_actualizacion', 'usuario_actualizacion'];
columnas: ProductoDetalle;
rowTemp;
constructor(public modalController: ModalController, public alertCtrl: AlertController) { }
@Input() getdata;
ngOnInit() {
// this.filtraTextbox(this.arreglo, getdata2);
this.row = this.getdata;
this.rowTemp = this.getdata;
}
async alertConfirm(row: ProductoDetalle) {
const alert = await this.alertCtrl.create({
header: 'Alerta!',
message: '¿Desea <strong>guardar</strong> los cambios?',
buttons: [
{
text: 'Cancelar',
role: 'cancel',
cssClass: 'secondary',
handler: () => {
this.rowTemp = this.row;
}
}, {
text: 'Confirmar',
handler: () => {
this.row = this.rowTemp;
this.modalController.dismiss({row});
}
}
]
});
await alert.present();
}
async closeModal() {
this.rowTemp = this.row;
await this.modalController.dismiss();
}
trackByFn(index, item) {
return index;
}
filtraTextbox(key, datarray) {
key.forEach( elemento => delete datarray[elemento] );
return datarray;
}
}
модальный .стр. html
<ion-header no-border>
<ion-toolbar>
<ion-title slot="start">Modificar Producto {{rowTemp.sku}}</ion-title>
<ion-buttons slot="end">
<ion-button (click)="closeModal()">
<ion-icon slot="icon-only" name="close"></ion-icon>
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-item *ngFor="let col of rowTemp | keyvalue; trackBy: trackByFn">
<ion-label position="stacked" color="tertiary">{{col.key}}</ion-label>
<ion-textarea [(ngModel)]="rowTemp[col.key]" required = true></ion-textarea>
</ion-item>
</ion-content>
<ion-footer>
<ion-toolbar>
<ion-button color="tertiary" (click)="alertConfirm(rowTemp)" slot="end" class="ion-margin-end">Guardar</ion-button>
</ion-toolbar>
</ion-footer>