2012-06-29 7 views
5

Düğmenin şerit araç çubuğuna uygulanmasının bir parçası olarak. Düğme java komut dosyasında şema adına ihtiyacım var. Bu yüzden şema nesnesini almak için aşağıdaki komutu kullanmaya çalışıyorum.Tridion'daki şema nesnesinden şema adı nasıl alınır?

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

Yukarıdaki komut, şema nesnesini döndürecektir. Ancak şema nesnesinden şema başlığı nasıl alınır. Lütfen bana bu konuda yardımcı olun. Şimdiden teşekkürler. Erken yanıt takdir edilmektedir.

cevap

-5

bir şema adını erişebilir aşağıdaki komutu kullanarak:

Sen öğeyi yüklemek için ve özellikleri (basitleştirilmiş kodu) var okumak için aşağıdaki kodu kullanabilirsiniz.

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

Yardımlarınız için teşekkürler Romkes.

Hey Pufflin Tek çözüm olduğunu söylemiyorum. Ama bu komut herhangi bir gecikme olmadan çalışıyor. Üzgünüm, kimsenin duygularını incitirsem.

+1

Bu, yalnızca öğe zaten bir listeye yüklenmişse çalışmaya devam edecektir. Görünüşe göre testinizde oldu, ancak kullanıcılarınızın öğenin henüz yüklenmediği bir durum bulması olasıdır. Kendinize ve kullanıcılarınıza bir iyilik yapın ve Albert'in önerdiği yönteme sadık olun: kodunuz bir web arayüzünde çalışır ve bilgilerin uzak bir sunucudan alınması gerekebilir. –

10

Öğe bilgisini, şema nesnesinde .load (true) yöntemini kullanarak yüklemeniz gerekir. Çünkü (açık) tüm bilgiler performans nedeniyle yüklenemedi.

.load() çağrısı eşzamansız olduğundan, yükleme bittiğinde "bilmek" için bir geriçağırım işlevi kullanmanız gerekir.

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

Cevabınız için teşekkür ederiz. Loaded() yöntemine uyarı koyarsa çalışır. Değilse, NULL döndürüyor. Yüklemek için biraz zaman gerektiriyor gibi görünüyor. Bundan nasıl kurtuluruz? Bana çözümü anlatabilir misin? Şimdiden teşekkürler. –

+1

Bunu "önlemek" değil. Bu asenkron bir süreçtir. Bunun yerine, kodunuzu ihtiyaç duyduğunuz anda çalışacak şekilde tetiklemek için olayları kullanmalısınız (örneğin, $ evt.addEventHandler adresine bakın). –

+2

getStaticTitle'nin önce bir şey döndürüp döndürmediğini kontrol ederdim - başlık, öğenin geri kalanı olmasa bile yüklenebilecek özelliklerden biridir (diğer öğelere bağlantılar genellikle kimliğe ve Hedefin Başlığına sahip olduğundan)) –