如何从Tridion中的架构对象获取架构名称?

P.M*_*hna 5 tridion tridion-2011

作为将Button添加到功能区工具栏的一部分.我需要Button java脚本文件中的模式名称.所以我试图使用以下命令来获取架构对象.

$display.getView().getItem().getSchema();
Run Code Online (Sandbox Code Playgroud)

上面的命令将返回架构对象.但是如何从架构对象中获取架构标题.请帮我解决这个问题.提前致谢.早期的反应表示赞赏.

Alb*_*kes 10

您需要通过在架构对象上调用.load(true)来加载项信息.因为(显而易见的)并非由于性能原因而加载所有信息.

由于.load()调用是异步的,因此必须使用回调函数来"知道"加载何时完成.

您可以使用以下代码加载项目并读取它的属性(代码简化):

var schemaObject = $display.getView().getItem().getSchema();
function loaded()
{
    alert(schemaObject.getTitle());
}
$evt.addEventHandler(schemaObject, "load", loaded);
schemaObject.load(true);
Run Code Online (Sandbox Code Playgroud)

  • 我会检查getStaticTitle是否首先返回任何内容 - 标题是可能实际加载的属性之一,即使项目的其余部分不是(因为链接到其他项目通常具有ID和目标的标题) (2认同)

P.M*_*hna -5

使用以下命令可以访问模式名称。

$display.getView().getItem().getSchema().getStaticTitle();
Run Code Online (Sandbox Code Playgroud)

感谢罗姆克斯的帮助。

嘿 Pufflin,我并不是说这是唯一的解决方案。但这个命令正在运行,没有任何延迟。抱歉,如果我伤害了任何人的感情。