我使用露天5.1.e在Aikau。如何在對話框中的自定義小部件中獲取搜索查詢參數?
在搜索頁面 「/股/頁/ DP/WS /面搜索」。我已經包含一個按鈕「AlfDynamicPayloadButton」。
單擊該按鈕時,將打開一個對話框,其中顯示「ALF_CREATE_DIALOG_REQUEST」,並在其內部顯示我的自定義小部件。
我需要當前的搜索參數進入該小部件來創建一個特殊的可視化。
我的文件 「方位-search.get.js」 代碼:
var myWidget = {
name : "alfresco/buttons/AlfDynamicPayloadButton",
config : {
label : "My Button",
useHash : true,
hashDataMapping : {
"hashFragmentParameterName" : "buttonPayloadProperty"
},
publishPayloadSubscriptions : [ {
topic : "ALF_SEARCH_REQUEST"
}],
publishTopic : "ALF_CREATE_DIALOG_REQUEST",
publishPayloadType : "PROCESS",
publishPayloadModifiers : [ "processDataBindings" ],
publishPayload : {
dialogTitle : "My Title",
widgetsContent : [ {
name : "myPackage/Example",
config : {
width : 400,
height : 500
// other configurations
}
}]
}
}
};
var widget = widgetUtils.findObject(model.jsonModel.widgets, "id",
"FCTSRCH_TOP_MENU_BAR");
widget.config.widgets.push(myWidget);
我的小工具:
define(
[
"dojo/_base/declare",
"dijit/_WidgetBase",
"alfresco/core/Core",
"dijit/_TemplatedMixin",
"dojo/_base/lang",
"dojo/text!./html/Example.html"
],
function(declare, _Widget, Core, _Templated, lang, template) {
[ _Widget, Core, _Templated ],{
templateString : template,
i18nRequirements : [ {
i18nFile : "./i18n/Example.properties"
} ],
cssRequirements : [ {
cssFile : "./css/Example.css"
} ],
constructor : function example__constructor() {
// the widget is created each time the button is pressed
this.alfSubscribe("ALF_SEARCH_REQUEST",
lang.hitch(this, this.upgradeSearchParameter));
this.inherited(arguments);
},
upgradeSearchParameter:
function example__upgradeSearchParameter(args){
// this line never run
this.searchParameter = args;
}
});
});
到目前爲止,我曾嘗試:
- 訂閱內該小部件發送到ALF_SEARCH_REQUEST。問題在於,在主題發佈時尚未創建小部件。
- 包含「alfresco/services/SearchService」具有我的小部件的依賴關係。我可以通過它訪問諸如「sort」,「site」,「sortAscending」等查詢的一些信息,但不能訪問「term」。
- 包含「alfresco/search/AlfSearchList」具有我的小部件的相關性。我有「searchTerm」,但它總是空的「」。
在我的按鈕中使用「publishPayloadSubscriptions」。查詢參數的所有信息都在對話框內,但它不存在選項來填充我的小部件與信息
publishPayloadSubscriptions : [ { topic : "ALF_SEARCH_REQUEST" }],
是否有某種方式來獲得的最後一個查詢的所有參數在我的自定義小部件?
我在我的問題上做了一些改變,我把我的代碼。最後我想要的是在我的小部件中有最後的「搜索參數」。顯然,每次單擊按鈕時,它都會創建一個新的小部件實例,從而摧毀其中的所有內容。通過檢查元素,我檢查了搜索查詢的所有參數都位於對話框小部件的內部,但我不知道如何將它們傳遞給我的小部件。我認爲我的代碼無法運行,因爲事件「ALF_SEARCH_REQUEST」在我的窗口小部件創建之前觸發。有沒有地方存儲最後的搜索請求參數? – Troncador