gpt4 book ai didi

tridion - Anguilla - 从弹出窗口更新字段的值?

转载 作者:行者123 更新时间:2023-12-04 15:25:19 25 4
gpt4 key购买 nike

我有一个模态弹出窗口,每当编辑器尝试使用某些值(在本例中为过去的日期字段)保存组件时,就会出现该弹出窗口。
在这个弹出窗口中,我向编辑器显示了一些选项(非常类似于默认的“打开共享项目”对话框)和一个确定/取消按钮组合。在取消时,我触发“取消”事件,编辑器返回编辑屏幕,这里一切正常。在“确定”上,我想更改该字段的值以匹配编辑器选择的任何内容,然后保存。
我尝试使用 FieldBuilder 和 this other topic 上提到的示例 Boris 的方法。但我无法从弹出对话框进入该字段。
关于如何从模式弹出窗口修改项目(也可以是页面)的 xml 的任何建议?
编辑:getControlForFieldName 中使用的代码

function getControlForFieldName(name) {
var fieldBuilder = $display.getView().properties.controls.fieldBuilder;
var fieldsContainer = fieldBuilder.properties.input;
var fieldsNode = fieldsContainer.getElement();
var fieldContainer = $dom.getFirstElementChild(fieldsNode);
while (fieldContainer) {
var labelNode = $dom.getFirstElementChild(fieldContainer);
var fieldNode = $dom.getNextElementSibling(labelNode);
var control = fieldNode.control;
if (control.getFieldName() == name) {
return control;
}
fieldContainer = $dom.getNextElementSibling(fieldContainer);
}
}
编辑#2
经过弗兰克的建议,以及杰米和弗兰克离​​线的一些帮助,我得到了它的工作如下:
  • 弹出窗口是从命令扩展调用的(在我的例子中是保存并关闭)
  • command.js 指定了一个在“提交”时调用的事件处理程序(== OK 被按下)

  • $evt.addEventHandler(p.dialogPopup, "submit", 
    this.getDelegate(this._onPopupSubmit));
    在我的弹出窗口中,我将所选项目(它是一个关键字 ID)传递给事件处理程序:
    this.fireEvent("submit", { id: select.options[select.selectedIndex].value });
    现在回到事件处理程序 _onPopupSubmit(e)我只是读取 e.data.id,加载此关键字,获取 ID 和标题等属性,并使用 item.setMetadata(“具有更新值的新元数据”)更新项目的元数据。
    简单的 :)

    最佳答案

    您的代码在弹出窗口中运行,因此您对全局变量所做的任何引用都将从弹出窗口中获取。

    所以当你得到 fieldBuilder 时:



    var fieldBuilder = $display.getView().properties.controls.fieldBuilder;

    $display 是对全局变量的引用。所以这实际上是在弹出窗口(没有)中查找 FieldBuilder。

    获取Component窗口的FieldBuilder,可以从opener获取:

    var fieldBuilder = opener.$display.getView().properties.controls.fieldBuilder;

    您可能需要考虑将更新的值实际传递给回调函数或使用(自定义)事件,因为这会使您的弹出窗口不那么依赖 opener.诡计。

    关于tridion - Anguilla - 从弹出窗口更新字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11208259/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com