1

Sencha Touch は入力タイプのファイルをサポートしていないため、いくつかの html でこれを実行しようとしています

config: {
    html: '<input type="file" onchange="readURL(this);">',

しかし、私は自分のアプリの外でしか関数を呼び出すことができません..

コントローラー関数を呼び出す方法を知っている人はいますか?

4

1 に答える 1

0

あまりきれいではありませんが、この機能が Sencha Touch フレームワークに実装されるまでの回避策です。これは、ビューファイルで使用するコードです

config: {
    html: '<input type="file" onchange="readURL(this);">',

ファイルが選択されるとすぐに関数 readURL が呼び出されます。この関数から、次のコードでアプリケーション \ コントローラー \ 関数 \ を呼び出します

function readURL(input) { 
    window['myAppName'].app.getController('myControllerName').photoToStore(photo);
}

photoToStore 関数で、写真の base64 を取得します

photoToStore: function(photo) {
    var reader = new FileReader();      
    var img    = new Image();
    reader.readAsDataURL(photo.files[0]);                       

    reader.onload = function(e) {   
        img.src = e.target.result;                  
    }
}

最後のステップで、base64 文字列をバックエンドに送信すると、写真をファイルとして安全に保管できます。

于 2013-10-11T12:45:25.037 に答える