0

PhoneGap + Sencha Touch 2を使用してネイティブAndroidアプリを作成しました。サーバーへのファイルのアップロードに成功しましたが、FileTransfer upload()メソッドのアップロード成功コールバック関数からビューにアクセスできません。これが私のコードです:

コールバックのアップロード:

uploadPicture: function(imageURI) {
    var options = new FileUploadOptions(),
    params = new Object(),
    fileTransfer = new FileTransfer(),
    builder = this.getBuilder(),
    app = this.getApplication(),
    uri = encodeURI('/myservlet');

options.fileKey = 'file';
options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
options.mimeType = 'image/jpeg';

params.myparams = something;
params.moreparams = evenmore;

options.params = params;
options.chunkedMode = false;

fileTransfer.upload(imageURI, uri, this.uploadSuccess.bind(this), this.uploadError.bind(this), options);        
},

アップロード成功機能

uploadSuccess: function (r) {
    var builderChild = this.getBuilderChild(),
    data = r.response.attachment;

builderChild.addInstance(builderChild.config, data);
navigator.notification.alert('Attachment successful.');
}

uploadSuccess関数に入ると、builderChildオブジェクトは未定義です。この同じコントローラーを介して他の関数でbuilderChildオブジェクトを使用できましたが、uploadSuccessでは使用できませんでした。

何か案は?

4

1 に答える 1

0

これを試してみてください、これは私が以前に行った方法です。

var ftSuccess = Ext.bind(this.uploadSuccess, this),
    ftError   = Ext.bind(this.uploadError, this);

fileTransfer.upload(imageURI, uri, ftSuccess, ftError, options);        

これが役に立ったことを願っています

于 2012-09-11T18:15:46.440 に答える