2012-04-27 3 views
3

dojox/form/Uploaderの作成に関するドキュメントはプログラム的に見つかりません。私は自分で試してみましたが、プラグイン登録メカニズムが何とか壊れているようです。プログラマブルDojoxアップローダ - ajaxアップロードが動作しません

require([ 
    "dojo/dom-construct", 
    "dijit/form/Button", 
    "dojox/form/Uploader", 
    "dojox/form/uploader/FileList", 
    "dojox/form/uploader/plugins/IFrame", 
    "dojo/domReady!" 
    ], function(domConstruct, Button, Uploader, UploaderFileList) { 

    var form = domConstruct.create('form', { 
     method: 'post', 
     enctype: 'multipart/form-data', 
     class: 'Uploader' 
    }, document.body);  

    var up = new Uploader({ 
     label: 'Pick files', 
     multiple: true, 
     url: '/echo/json/' 
    }).placeAt(form); 

    var list = new UploaderFileList({ 
     uploader: up 
    }).placeAt(form); 

    var btn = new Button({ 
     type: 'submit', 
     label: 'upload', 
     onClick: function() { 
      up.upload(); 
     } 
    }).placeAt(form); 


    btn.startup(); 
    up.startup(); 
    list.startup(); 

});​ 

jsfiddle hereの例。

dojox/form/Uploaderとdojox/form/uploader/plugins/IFrameのソースコードを理解する限り、プラグインはdojox.form.addUploaderPlugin関数を介して登録されています。これは、アップローダウィジェットクラスをselfと前任者としてプラグインされたプラグインです。 しかし、アップローダウィジェットの主要なメソッド「アップロード」は、HTML5プラグイン(これは、Iframeプラグインに自動的に組み込まれています)によってオーバーライドされることはありません。

このバグはありますか?または私は何か間違っている?

ありがとうございました!

答えて

3

要するに、プルインされた変数の代わりに新しいdojox.form.Uploaderを使用してください。そうでなければ、プラグイン拡張は適用されません。

dojox.form.UploaderOrg = dojox.form.Uploader; 
var extensions = [dojox.form.UploaderOrg]; 
dojox.form.addUploaderPlugin = function(plug){ 

      extensions.push(plug); 
      declare("dojox.form.Uploader", extensions, {}); 
    } 

AMDローダーがある返し、オールウェイズdojox.form.UploaderOrgになりますし、拡張プラグインについて知っていないクラス:

理由ビーイングは、あなたは、プログラマがaddUploaderPluginに次やって見るでしょう。

以下に変更します。

var up = new dojox.form.Uploader({ 
    label: 'Pick files', 
    multiple: true, 
    url: '/echo/json/' 
}).placeAt(form); 

そして、あなたはないを持っていることを確認するには、私が答えるためにどうもありがとうございました:-)まったく同じ考えを今日目が覚めたdjConfig.publishRequireResult = false

+0

を設定しました! – JoshuaBoshi

+0

このmschrありがとう。 –

関連する問題