2013-08-15 3 views
0

Я создал оболочку для класса FineUploaderBasic, чтобы связать ее с моей существующей системой и когда вызывается функция onComplete, она вызывается в области FineUploaderBasic а не родительский элемент.Как я могу определить область действия функции onComplete?

Как я могу изменить это или получить доступ к родительскому объекту FineUploaderBasic Instance?

Я написал код, используя ExtJs, как Follow, и я пытаюсь запустить свое собственное событие завершения загрузки после завершения загрузки FineUploader. но функция «onUploadComplete» вызывается в пределах экземпляра FineUploader, и я не могу получить доступ к своему собственному объекту.

Ext.define('X4.Core.FileUploader', { 

mixins: { 
    observable: 'Ext.util.Observable' 
}, 

uploader: null, 

constructor: function (config) { 

    this.initConfig(config); 

    this.mixins.observable.constructor.call(this, config); 

    this.addEvents({ 
     /** 
     * Event which is triggered once the file upload has been completed successfully. 
     * 
     * @since X4 4.1.1 
     */ 
     "uploadcomplete": true 
    }); 

    return this; 
}, 

getUploader: function() { 

    var me = this; 

    if (me.uploader === null) { 
     me.uploader = new qq.FineUploaderBasic({ 
      autoUpload: false, 
      request: { 
       endpoint: '/_system/x4/commands/file_uploader.ashx' 
      }, 
      callbacks: { 
       onComplete: me.onUploadComplete 
      } 
     }); 
    } 

    return me.uploader; 

}, 

onUploadComplete: function(id, name, response) { 

    var me = this; 

    alert('upload complete ' + id + ' ' + name + ' ' + response); 

    me.fireEvent('uploadcomplete', me.callbackScope, id, name, response); 

}, 

addFile: function (fileInput) { 

    var me = this; 

    return me.getUploader().addFiles(fileInput.extractFileInput()); 

}, 

upload: function() { 

    var me = this; 

    me.getUploader().uploadStoredFiles(); 

} 

}); 
+0

Что вы подразумеваете под «родительским» элементом? Контекст обратных вызовов всегда является экземпляром Fine Uploader. Что вы пытаетесь сделать точно? Можете ли вы отредактировать свой ответ и предоставить какой-то код, чтобы я мог лучше понять, как я могу помочь? –

ответ

0

Поскольку вы не указали какую-либо конкретную информацию о своей проблеме, я собираюсь предоставить очень общий ответ. Кроме того, поскольку вы не указали, используете ли вы плагин jQuery или нет, я должен буду предположить, что вы этого не делаете.

Итак, ответ на ваш вопрос действительно не имеет никакого отношения к Fine Uploader. Предполагая, что вы используете версию без зависимостей, Fine Uploader задает контекст вызова для каждого обработчика обратного вызова/события соответствующему экземпляру Fine Uploader. Вы запрашиваете элемент «parent», предположительно, родительский элемент значения, указанного вами для опции element.

Вы можете определить родительский элемент любого элемента/узла через свойство parentNode узла.

+0

Родительский код не определен в контексте обратного вызова. Я использую FineUploaderBasic в версии без зависимостей. Я добавляю файлы вручную, используя метод addFiles, а затем вызываю метод uploadStoreFiles() для запуска загрузки. –

+0

@PhillipJones Отредактируйте свой вопрос, чтобы включить весь ваш код, пожалуйста, пожалуйста. –