¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo definir variables globales en archivos JS de UI5 generados por Eclipse: Guía para evitar errores

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 20 Vistas
0
Cargando...

Hola a todos

¿Cómo defino variables globales en los archivos JS de UI5 generados por la herramienta eclipse? Quería alguna variable que pudiera ser utilizada en toda la vista JS y en el archivo del controlador, o al menos dentro del mismo archivo de vista JS, en diferentes métodos

Agregué algunas variables justo debajo del controlador de la vista, pero me encontré con muchos errores

por ejemplo

sap.ui.jsview( poc.Initial", {/** Especifica el controlador perteneciente a esta vista* En el caso de que no esté implementado o que se devuelva "null", esta vista no tiene un controlador.* @memberOf poc.Initial// Algunas variables globalesvar aContent = {};var aControls = [];var Matlayout = new c.layout.MatrixLayout({width:"auto"}), getControllerName : function() { return "poc.Initial"; },
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Gracias Andreas

¿Estás diciendo que escribir esto en el método onInit() es una mejor forma de definir variables?

this.aControls = [];

¿En qué se diferencia esto de window.aControls = [];

Perdón si las preguntas son muy tontas. Vengo del entorno de Java web dynpro, no estoy muy familiarizado con html y codificación de scripts.

Saludos

Aakash

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Aakash,

¿Por qué no declaras simplemente tus variables globales en el archivo index.html o en otro archivo .js personalizado?

Saludos cordiales,

Christian

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Gracias Sumit, Andreas

Quería usar una variable global para controlar/persistir el contenido dentro de un Shell. Cada elemento de trabajo en el shell/subelementos en el shell tendrán un contenido de IU diferente, por lo que según el elemento de trabajo seleccionado, se mostrará el contenido y luego se eliminará el contenido anterior.

Según el elemento de trabajo seleccionado, tengo estas declaraciones Switch, que establecen el contenido específico en el lienzo principal del Shell.

caso: Item1

p. ej. oShell.setContent(aControls[1], true)

caso: Item1

p. ej. oShell.setContent(aControls[1], true)

< aunque de alguna manera no puedo eliminar el contenido antiguo>

¿Es esta la forma correcta de crear contenido dentro de un Shell?

Agradecería si pudieras ayudar

Gracias, Aakash

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Aakash,

La respuesta de Sumit es una posibilidad. O puedes, por ejemplo, en el método init decir:

window.aControls = [];

Lo que hizo tu código fue escribir las definiciones de variables en medio de un objeto similar a JSON, por lo que la sintaxis de JS está rota.

Pero ¿qué sucede cuando la Vista se utiliza varias veces? ¿Son las variables realmente globales? Tal vez decir this.aControls = [];

escrito en el método init sería mejor, entonces es una variable de instancia. Aún puedes acceder a esta variable desde el Controlador:

var c = this.getView().aControls;

En general, el uso de variables globales no siempre se considera una buena práctica.

Saludos

Andreas

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?