Como recargar contenido de una vista?

Hola, este es mi primer tema en caso de que este en la sección equivocada me avisan!

Actualmente estoy realizando una app de ejercicios, estoy en la problemática siguiente:

  • inicio sesion.
  • dentro del menu me dirijo al formulario de carga de datos.
    (abro la vista de categorias y muestro el formulario correspondiente en otra vista.)
  • cargo la info y al utilizar
    app.views.main.router.navigate(‘/menu/’)
    vuelvo a mi menu principal, pero sigue con la info vieja. No me actualiza el contenido.

(Cabe destacar que el contenido lo estoy extrayendo del localStorage) pero la vista menu no vuelve a cargar mi argumento nuevamente:

/[F7Event]=======================================================================[App]/
$$(document).on(‘page:init’, ‘.page[data-name=“menu”]’, function(e) { // Inicializador:
console.log(“ | [Menu]”);
menu_refreshInfoUser();
getSup_infoUser(mailLogged());
// Muestra nombre de usuario en la seccion de comenzar:
datos = localStorage.getItem(“usuario”);
userObjStorage = JSON.parse(datos);
console.log(typeof datos+“\n”+datos);
console.log(typeof userObjStorage +“\n”+userObjStorage );
// Inicializar listas virtuales:
initializeVirtualListGym();
initializeVirtualListNutrition();

if (userObjStorage){
// Muestra datos en front pagina menu:
//Principal
printHTML(“#nombreMenu”,userObjStorage.nombre);
printHTML(“#apellidoMenu”,userObjStorage.apellido);
printHTML(“#pesoMenu”,userObjStorage.peso_actual);
//Perfil
printHTML(“#nombrePerfil”,userObjStorage.nombre);
printHTML(“#apellidoPerfil”,userObjStorage.apellido);
printHTML(“#alturaPerfilDatos”,userObjStorage.altura);
printHTML(“#pesoPerfilDatos”,userObjStorage.peso_actual);
printHTML(“#nacimientoPerfilDatos”,calcularEdad(userObjStorage.nacimiento));
}
$$(“#nombreMenu”).text(${userObjStorage.nombre} );

// Agregar evento storage para actualizar vista si cambia la información del usuario en el localstorage
window.addEventListener(‘storage’, function (event) {
if (event.key === ‘usuario’) {
datos = localStorage.getItem(“usuario”);
userObjStorage = JSON.parse(datos);
$$(“#nombreMenu”).text(${userObjStorage.nombre} );
}
});

}); // ; añadido recientemente

mi consulta es bien precisa, como tengo que hacer para que al volver a “menu” me recargue el contenido js?

Muchas gracias!

Hola, creo que el problema es que tenes que volver a reiniciar el menú, que por lo que veo en el código es una página.

$$(document).on('page:reinit', '.page[data-name="menu"]', function (e) {
  // Do something here when page with data-name="about" attribute loaded and initialized
})

Más info

1 Like

Lo pude resolver:

// Dado el ID muestra en pantalla nombre de usuario:
/// Param> idHTML, JsonObjet
function printHTML(id, obj) {
console.log(“[printHTML()] | ID: “+id+” | Dato: “+obj);
// Obtener el objeto usuario correspondiente al ID
try {
$$(id).text(${obj} );
} catch (e) {
console.error(e);
$$(id).text(””);
}
}

solamente entrego el id y el contenido para que me actualice en tiempo real el contenido.

Si, esa opción la habia intentado tambien, sin embargo como vuelve a cargar sobre cache conocido me vi en la necesidad de optar por realizar una funcion que logre modificar los datos aun tenga o no almacenados datos con anterioridad. (La funcion que realice me sirve mucho cuando traigo de la db y quiero mostrar en tiempo real la data nueva, conserva la vieja un periodo de tiempo y en cuanto tiene la nueva la muestra.)

1 Like