2016-06-21 14 views
1

Ich habe mehrere Instanzen von Fine Uploader in einer Seite. Ich möchte das Uploader-Skript und die Vorlage für jede Uploader-Instanz nicht wiederholen/duplizieren, da es in meinem Fall viel Code ist (6-8 Uploader).Fine Uploader-Code für Multi-Instanz wiederverwenden

Ich habe folgende:

$('#fine-uploader-manual-trigger-section1').fineUploaderS3({ 
    template: 'qq-template-manual-trigger-section1', 
    autoUpload: false, 
    debug: true, 
    request: { 
     endpoint: $("#s3_url").val(), 
     accessKey: $("#access_key").val(),  
    }, 
}); 
$('#fine-uploader-manual-trigger-section2').fineUploaderS3({ 
    template: 'qq-template-manual-trigger-section2', 
    autoUpload: false, 
    debug: true, 
    request: { 
     endpoint: $("#s3_url").val(), 
     accessKey: $("#access_key").val(),  
    }, 
}); 
....... 
up to 6-8; as you can template code also repeat. 

Meine Ziele sind es wieder zu verwenden Skript und möglicherweise Vorlage unter Ansatz. Ich brauche einen Rat oder eine Richtung, was eine Lösung sein könnte. Sicherlich versuche ich Code Duplikation zu vermeiden.

$('#fine-uploader-manual-trigger-section1').createUploader('section1'); 
$('#fine-uploader-manual-trigger-section2').createUploader('section2'); 

function createUploader(section) { 
    return new fineUploaderS3({ 
    template: 'qq-template-manual-trigger'+section, 
    autoUpload: false, 
    debug: true, 
    request: { 
     endpoint: $("#s3_url").val(), 
     accessKey: $("#access_key").val(),  
    }, 
    }); 
} 

Meine Frage, wie .fineUploaderS3 zu instanziiert und befestigen das zu $('#fine-uploader-manual-trigger-section1')? Ist obige Vorgehensweise mit der JQuery-Version möglich?

+0

In einem ersten Schritt müssen Sie den jQuery-Plug-in-Wrapper nicht mehr verwenden. Aber am wichtigsten ist deine Frage nicht klar und ich weiß nicht, was spezifisch du versuchst zu tun. –

+0

hum ... Ich dachte, dass jQuery-Version besser als normal ist. Nicht sicher, wie groß die Veränderung für mich ist! Wie auch immer, um Ihre Frage zu beantworten, habe ich 6-8 Uploader in einer Seite, jeder von ihnen lädt in einen bestimmten Unterordner in S3. Zum größten Teil ist die einzige Änderung in jedem Uploader ein bestimmter Unterordner. Anstatt doppelten Uploader-Code und Vorlage für jede Instanz zu erstellen, möchte ich in der Lage sein, 6-8 Instanzen zu erstellen, indem ich ein feines Uploader-Skript und eine Vorlage aufruft, indem ich den Unterordner als Parameter übergebe. – bizready

+0

Sie wollen also 8 separate Instanzen von Fine Uploader? Jeder an ein anderes Element angehängt? –

Antwort

0

Hier ist eine Funktion, die Sie einzigartige Elemente w/unterschiedlichen Endpunkten und Vorlagen angebracht, um eine Reihe von Fein Uploader S3 Instanzen erstellen anrufen:

function createUploader(uploaderInfo) { 
    return new qq.s3.FineUploader({ 
     element: document.querySelector(uploaderInfo.elementSelector), 
     template: document.querySelector(uploaderInfo.templateSelector), 
     request: { 
     endpoint: uploaderInfo.endpoint 
     } 
    }) 
} 

... und Sie können wie folgt diese Funktion aufrufen :

[ 
    { 
     elementSelector: '#element1', 
     templateSelector: '#template1', 
     endpoint: 'endpoint/1' 
    }, 
    { 
     elementSelector: '#element2', 
     templateSelector: '#template2', 
     endpoint: 'endpoint/2' 
    } 
    ... 
].forEach(function(uploaderInfo) { 
    createUploader(uploaderInfo) 
}) 

Das ist die allgemeine Idee. Sie können den Code natürlich so ändern, dass er Ihren Anforderungen besser entspricht. Wenn Sie Uploader-Instanzen verfolgen müssen, können Sie dies auch innerhalb der forEach-Schleife tun.

+0

Tolle Idee Ray und vielen Dank !! Ich werde experimentieren und diesen Thread aktualisieren. – bizready

+1

Ich habe meine Lösung basierend auf Ray's Richtung implementiert und es lief sehr reibungslos. Natürlich musste ich viele spezifische Anpassungen vornehmen, daher ist das Hinzufügen von Code hier möglicherweise nicht sinnvoll. Nochmals vielen Dank an Ray für seine großartige Unterstützung mit konkreten Beispielen. – bizready