2012-06-29 12 views
5

Como parte de la implementación del botón en la barra de herramientas de la cinta. Necesito el nombre de esquema en el archivo de comandos JavaScript java. Así que estoy tratando de usar el siguiente comando para obtener el objeto de esquema.¿Cómo obtener el nombre de esquema del objeto de esquema en Tridion?

$display.getView().getItem().getSchema(); 

El comando anterior devolverá el objeto de esquema. Pero cómo obtener el título del esquema desde el objeto del esquema. Por favor, ayúdame en esto. Gracias por adelantado. La respuesta temprana es apreciada.

Respuesta

-5

con el siguiente comando se puede acceder al nombre de esquema.

$display.getView().getItem().getSchema().getStaticTitle(); 

Gracias Romkes por su ayuda.

Hey Pufflin No estoy diciendo que sea la única solución. Pero este comando funciona sin demora. Lo siento si herí los sentimientos de alguien.

+1

Esto solo funcionará si el artículo ya está cargado en una lista. Lo que aparentemente fue en su prueba, pero es probable que los usuarios encuentren una situación en la que el elemento aún no se haya cargado. Hágase un favor a usted mismo y a sus usuarios y siga el método que Albert sugirió: su código se ejecuta en una interfaz de usuario web y es posible que la información deba obtenerse de un servidor remoto. –

10

Debe cargar la información del artículo llamando a .load (verdadero) en el objeto del esquema. Porque (obvio) no toda la información está cargada por razones de rendimiento.

Dado que la llamada .load() es asincrónica, debe utilizar una función de devolución de llamada para 'saber' cuando se realiza la carga.

Usted puede utilizar el código siguiente para cargar el elemento y leer sus propiedades (código simplificado):

var schemaObject = $display.getView().getItem().getSchema(); 
function loaded() 
{ 
    alert(schemaObject.getTitle()); 
} 
$evt.addEventHandler(schemaObject, "load", loaded); 
schemaObject.load(true); 
+0

Gracias por su respuesta. Está funcionando si se pone alerta en el método loaded(). Si no, devuelve NULL. Parece que requiere algo de tiempo para cargar. ¿Cómo evitar eso? ¿Puedes explicarme la solución? Gracias por adelantado. –

+1

Usted no "evita" eso. Es un proceso asincrónico. En su lugar, debe usar eventos (consulte $ evt.addEventHandler, por ejemplo) para activar su código en el momento que lo necesite. –

+2

Sin embargo, verificaría si getStaticTitle devuelve algo primero: el título es una de esas propiedades que en realidad podría cargarse incluso si el resto del elemento no lo está (dado que los enlaces a otros elementos suelen tener el ID y el título del objetivo)) –

Cuestiones relacionadas