我一直在开发一个自定义 extjs 控制台,以使作者能够使用html5smartfile组件删除资产。但不知何故,html5smartfile 组件并没有按应有的方式工作。作者可以放置资产的区域未显示。如果我正在创建 CQ5 对话框,同样可以正常工作。但在我创建了一个窗口的情况下,它不起作用。
我已经像这样声明了我的 smartfile 组件:
var assetLinkDropField = {
xtype: 'html5smartfile',
fieldLabel: 'Asset Link',
ddAccept: 'video/.*',
ddGroups: 'media',
fileReferenceParameter: './linkUrl',
name: './linkUrl',
allowUpload: false,
allowFileNameEditing: false,
allowFileReference: true,
transferFileName: false
};
但这是这样渲染的:
经过大量工作,我发现 CQ5 对话框更新了组件的视图,但对于我的窗口,我必须自己更新它。因此,通过轻微的操作,我通过调整声明成功地显示了拖动区域,如下所示:
var assetLinkDropField = {
xtype: 'html5smartfile',
fieldLabel: 'Asset Link',
ddAccept: 'video/.*',
ddGroups: 'media',
fileReferenceParameter: './linkUrl',
name: './linkUrl',
allowUpload: false,
allowFileNameEditing: false,
allowFileReference: true,
transferFileName: false,
listeners: {
afterlayout: function () {
this.updateView();
}
}
}
所以现在面板看起来像:
但是拖放仍然不起作用。我的窗口声明是这样的:
win = new CQ.Ext.Window({
height : 750,
width : 700,
layout : 'anchor',
// animateTarget : btn.el,
closeAction : 'close', // Prevent destruction on Close
id : 'manageLinkWindow',
title : '<b>Multi Link Widget Dialog</b>',
frame : true,
draggable : false,
modal : false, //Mask entire page
constrain : true,
buttonAlign : 'center',
items : [assetLinkDropField]
});
}