在组件编辑器中获取字段的_current_值?(Tridion 2011 SP1)

Nun*_*res 11 tridion

我正在编写"Save"命令的扩展,基本上我想验证某些字段并提供一个弹出窗口,允许编辑器根据当前日期,Release#和其他一些属性选择给定的关键字或其他值.

我以为我做得很好,直到我终于弄清楚$display.getItem()是返回存储在CM中的项目,而不是编辑器可能已更改的当前值.

有没有内置的方法来获取这些信息?或者我需要解析DOM来解决它?

这是我目前的代码

var item = $display.getItem();
if (item.getItemType() == "tcm:16") {
   if (item.getSchema().getStaticTitle() == "Test Schema") {
      var content = $xml.getNewXmlDocument(item.getContent());
      var fieldXml = $xml.getInnerText(content, "//*[local-name()='NewField']");
      alert(fieldXml);
   }
}
Run Code Online (Sandbox Code Playgroud)

它的工作-我得到"新野"的价值-但这是项的值,当它被加载,而不是当前值.

有趣的是,item.getTitle()显示了Title字段的当前值,所以我希望有一种方法可以实现自定义字段.

Pet*_*aer 9

我不知道这是否是正确的方法,但您可以在项目上触发"collectdata"事件 - 这将使用目前在编辑屏幕上输入的内容更新数据.

var item = $display.getView().getItem();
item.fireEvent("collectdata");
$log.message(item.getXml());
Run Code Online (Sandbox Code Playgroud)