Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

162
Vistas
Modal angular iónico, la función de error se ejecuta antes de console.log

Tengo dos páginas como modal, la primera llamando a la segunda primera página .ts

 export class FirstPage implements OnInit { filter: any = { date: { begin: null, end: null }, lieu: [], price: { min: null, max: null, monnaie: null }, hobbies: [], participants: { min: null, max: null }, distance: { min: null, max: null } } constructor( private modalController: ModalController, ) { } ngOnInit() { } goBack() { this.nav.back(); } searchEvent(){ console.log('search', this.filter) let filtreTmp = this.filterBeforeSearch(this.filter) console.log('this filter after before filter', filtreTmp, this.filter) } filterBeforeSearch(filter){ console.log('traitement search', filter) var filtreTmp = { ...filter } console.log('tmp', filtreTmp, filter) filtreTmp.hobbies = filtreTmp.hobbies.map(item => item.id) filtreTmp.lieu = filtreTmp.lieu.map(item => item.id) if(filtreTmp.price.monnaie){ console.log('traitement') filtreTmp.price.monnaie = filtreTmp.price.monnaie.id } console.log('this filter', filtreTmp, filter) return filtreTmp } async showFilters() { const popover = await this.modalController.create({ component: SecondPage, cssClass: 'modal_specific_pays', swipeToClose: true, presentingElement: await this.modalController.getTop(), componentProps: { filter: JSON.stringify(this.filter) } }); popover.onDidDismiss().then((dataReturned) => { if(dataReturned.data){ this.filter = dataReturned.data; console.log('data returned', this.filter) this.searchEvent() } }); return await popover.present(); } }

mi lógica es cuando el modal es onDidDismiss, configuro los datos devueltos al filtro de la primera página; en mi evento de búsqueda, mi searchEvent tiene un objeto como valor al descartar modal, y con la función filterBeforeSearch cambio este objeto en string de id ;

así que cuando comento this.searchEvent dentro de mi onDidDismiss el objeto de alféizar de tipo monnaie, y cuando lo elimino, todos los console.log arriba del tratamiento que cambia este objeto en cadena muestran que el valor de monnaie ya cambió a cadena como si el tratamiento se ejecuta antes de console.log. Entonces, no sé en qué parte de este código se cambió este valor antes de que se ejecute el tratamiento porque si comento el tratamiento, el tipo de valor es un objeto;

segundo problema: he usado { ...this.filter } y Object.assign({}, this.filter) para clonar el valor de this.filter en filterTemp para evitar que mi valor de this.filter cambie por el tratamiento, pero siempre cambiado

PD: uso el nodo v14.17 si está relacionado con el nodo

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda