Модальный режим изменяет информацию сетки (визуально), когда я нажимаю близко или теряю фокус - PullRequest
1 голос
/ 17 апреля 2020

Модал меняет информацию о моей сетке (визуально), когда я нажимаю близко или когда я меняю фокус. Я уже пытался создать временную переменную, но она все еще не работает. Я не знаю, как решить эту проблему.

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

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...