Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

334
Visualizações
Implementando la interfaz IAsyncContentCreation en UI5

Para garantizar que sap.ui.core.UIComponent se cree de forma totalmente asincrónica, debemos implementar la interfaz IAsyncContentCreation :

 metadata: { interfaces: [ "sap.ui.core.IAsyncContentCreation" ], manifest: "json" }

Eso está totalmente bien.
Al explorar las muestras de aplicaciones de SAP, descubrí el siguiente fragmento de código, donde el nombre de la interfaz codificado y, por lo tanto, propenso a errores, se reemplaza con el código, que se puede verificar automáticamente:

 sap.ui.define([ "sap/ui/core/library", "sap/ui/core/UIComponent", … ], function(library, UIComponent, models, History) { "use strict"; return UIComponent.extend("sap.ui.demo.toolpageapp.Component", { metadata: { interfaces: [ library.IAsyncContentCreation ], manifest: "json" } … } }

Intenté verificar el contenido de la library en DevTools, pero obtengo una excepción ReferenceError en lugar de los valores de la library :

 Uncaught ReferenceError: library is not defined at eval (eval at init (Component.js:24), <anonymous>:1:1) at f.init (Component.js:24) at sap-ui-core.js:315 at f.constructor (sap-ui-core.js:315) at f.constructor (sap-ui-core.js:585) at f.constructor (library-preload.js:1154) at f [as constructor] (sap-ui-core.js:547) at new o1 (sap-ui-core.js:632) at H (sap-ui-core.js:628) at sap-ui-core.js:628

¿Cómo puedo asegurarme de que library.IAsyncContentCreation esté realmente correctamente definido y devuelva "sap.ui.core.IAsyncContentCreation" según lo previsto?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Intenté verificar el contenido de la library en DevTools, pero obtengo una excepción ReferenceError .

Lo más probable es que haya encontrado la limitación del depurador de V8, donde las variables de cierre no utilizadas (aquí: library ) no son evaluadas por el V8 durante la sesión del depurador y, por lo tanto, no se puede acceder a ellas desde la consola de devtool. Consulte ¿Por qué el depurador de Chrome cree que la variable local cerrada no está definida? y también los números V8 # 3491 y # 2710 .

La limitación anterior se aplica solo al depurador de V8. Cuando el código se ejecuta en tiempo de ejecución, library.IAsyncContentCreation se resolverá en la cadena "sap.ui.core.IAsyncContentCreation" como se esperaba, por lo que no obtendrá ReferenceError .

Explorando las muestras de las aplicaciones de SAP, [...] el nombre de la interfaz se reemplaza con el código.

No está claro por qué el autor de la muestra decidió requerir la biblioteca principal en primer lugar. Esas interfaces en UI5 Objects esperan literales de cadena. Y las interfaces UI5 son interfaces de marcadores simples (también conocidas como interfaces de etiquetado). No especifican ningún comportamiento en el código. Agregar el nombre de la interfaz (literal de cadena) simplemente indica cómo se supone que debe comportarse la clase que implementa la interfaz. Por lo tanto, agregar el literal de cadena es suficiente.

 interfaces: [ "sap.ui.core.IAsyncContentCreation" ],
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda