1

私はEmber.jsが初めてで、アップロードされた画像をdbに保存する必要があるという問題に悩まされていますが、その方法がわかりません画像をアップロードするためのコードを書きましたが、それをサーバー私の現在のコードを以下に示します

App.js

App = Ember.Application.create();

App.PreviewImageView = Ember.View.extend({
        attributeBindings: ['name', 'width', 'height', 'src'],
        tagName: 'img',
        viewName: 'previewImageView',
        printme: function () {
            console.log('in previewImageView');
        }
});
App.FileField= Ember.TextField.extend({
    type: 'file',
    attributeBindings: ['name'],
    change: function (evt) {
        var input = evt.target;
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                this.$().parent(':eq(0)').children('img:eq(0)').attr('src', e.target.result);
                var view = that.getPath('parentView.previewImageView');
                view.set('src', e.target.result);
            }
            reader.readAsDataURL(input.files[0]);
        }
    }
});

html

<script type="text/x-handlebars">
                {{view App.FileField name="logo_image" contentBinding="content"}}
                {{view App.PreviewImageView width="200" height="100" }}
</script>
4

2 に答える 2

0

ember-data を使用していると仮定すると、画像を表すモデルを作成し、リーダーの onload コールバックから作成/保存できます。例えば:

App.LogoImage = DS.Model.extend({
  id: DS.attr('number'),
  attachment: DS.attr('string')
});

//in App.FileField...
reader.onload = function (e) {
  this.$().parent(':eq(0)').children('img:eq(0)').attr('src', e.target.result);
  var view = that.getPath('parentView.previewImageView');
  view.set('src', e.target.result);
  var file = e.srcElement.result;
  var logo = App.LogoImage.createRecord({ attachment: file });
  logo.save();
}
于 2013-06-04T15:40:59.410 に答える