1

我一直在开发一个自定义 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]
              });
        }
4

1 回答 1

0

我认为您不应该使用 ddAccept: 'video/.*',这仅允许拖放来自内容查找器的视频。它应该是“图像/”。

如果上述方法不能解决您的问题,请验证 html5smartfile 的其他 extjs 属性/配置。

于 2014-04-01T05:40:50.203 回答