2016-05-04 16 views
0

我在我的對話框中有一個由LinkField和TextField組成的CompositeField。 在選擇LinkField的數據時,我想用與LinkField值相關的值填充TextField。 任何想法如何做到這一點?在Magnolia LinkField的變化中填充TextField的數據

這是用於Magnolia CMS。我正在使用最新的Magnolia版本。

謝謝! :)

回答

2

不同領域之間沒有ootb綁定。

要創建它,你要麼需要編寫自己的字段,將在內部封裝領域的鏈接和文本字段和鏈接字段值的變化和在文本字段改變寄存器設定值監聽器。
或者您需要重寫對話提示器,以便能夠在創建鏈接字段時將此監聽器註冊。

對不起,目前沒有任何代碼示例來演示它。希望解釋清楚。

HTH,

+0

謝謝Jan! :)其實我一直在考慮這兩個選項。但現在我會先聽取聽衆的意見,看看它是如何工作的。 –

0

您是否需要根據編輯器更新文本字段?

如果不是,可以通過修改保存操作輕鬆實現。你的表單應該有一個類別= info.magnolia.ui.admincentral.dialog.action.SaveDialogActionDefinition的定義按鈕

打開SaveDialogActionDefinition,你會看到它指向info.magnolia.ui.admincentral.dialog.action.SaveDialogAction,它在執行時可以在保存會話之前操作節點。

如果擴展SaveDialogAction,加入類似setNodeName(Node node, JcrNodeAdapter item)另一種方法,並把它稱爲setNodeName(...)node.getSession().save()之間,你可以設置你基於這些用戶輸入想要的任何附加屬性。

您還需要引用新動作的另一個定義類,以便對話框定義知道在提交時使用新動作。

+0

是的,我需要在視圖編輯器來更新文本字段。在從鏈接字段中選擇數據時,會爲鏈接字段的所選值指定與文本字段相關的默認值。用戶可以進一步編輯該值。 –