Sencha Touch は入力タイプのファイルをサポートしていないため、いくつかの html でこれを実行しようとしています
config: {
html: '<input type="file" onchange="readURL(this);">',
しかし、私は自分のアプリの外でしか関数を呼び出すことができません..
コントローラー関数を呼び出す方法を知っている人はいますか?
Sencha Touch は入力タイプのファイルをサポートしていないため、いくつかの html でこれを実行しようとしています
config: {
html: '<input type="file" onchange="readURL(this);">',
しかし、私は自分のアプリの外でしか関数を呼び出すことができません..
コントローラー関数を呼び出す方法を知っている人はいますか?
あまりきれいではありませんが、この機能が 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 文字列をバックエンドに送信すると、写真をファイルとして安全に保管できます。