PLUpload不能与Extj 5一起使用

时间:2015-02-24 09:52:03

标签: extjs extjs4 plupload extjs5

请找到针对Extjs 4和5的PLUpload的小提琴

Fiddle with Extjs 4 [WORKING]

    http://jsfiddle.net/jaspreets/dvsbsgse/

Fiddle with Extjs 5 [NOT WORKING]

    http://jsfiddle.net/jaspreets/797sLzsn/

请告诉我为什么它不能使用ExtJs - 5。 可能的解决办法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要迁移PLUpload插件。为此,您需要在插件中进行多处更改。

Button.js:

/**
* @class Ext.ux.upload.Button
* @extends Ext.button.Button
*
* @author Harald Hanek (c) 2011-2012
* @license http://harrydeluxe.mit-license.org
*/
Ext.define('Ext.util.multiupload.Button', {
  extend: 'Ext.button.Button',
  alias: 'widget.uploadbutton',
  requires: ['Ext.util.multiupload.Basic'],
  disabled: true,

  listeners: {
    boxready: function() {
        var me = this;
        Ext.applyIf(me.config.uploader, {
            browse_button: me.config.id || me.getId()
        });

        me.uploader = me.createUploader();
        me.uploader.initialize();
        me.plugins[0].initializeComponent(me);

        me.relayEvents(me.uploader, ['beforestart',
            'uploadready',
            'uploadstarted',
            'uploadcomplete',
            'uploaderror',
            'filesadded',
            'beforeupload',
            'fileuploaded',
            'updateprogress',
            'uploadprogress',
            'storeempty'
        ]);
    }
},

/**
 * @private
 */
createUploader: function() {
    return Ext.create('Ext.util.multiupload.Basic', this, Ext.applyIf({
        listeners: {}
    }, this.initialConfig));
}
});

Basic.js: 删除AddEvents。将商店更改为此。

me.store = Ext.create('Ext.data.JsonStore', {
        fields: ['id', 'loaded', 'name', 'size', 'percent', 'status', 'msg'],
        listeners: {
            load: me.onStoreLoad,
            remove: me.onStoreRemove,
            update: me.onStoreUpdate,
            scope: me
        }
    });

onStoreRemove方法的第二个参数是一个数组。所以采取第一个元素。

Window.js: 删除Id“form-statusbar”。将init函数重命名为initializeComponent。

现在应该可以了。