Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms backbonejs中的多部分表单另存为属性_Forms_Backbone.js - Fatal编程技术网

Forms backbonejs中的多部分表单另存为属性

Forms backbonejs中的多部分表单另存为属性,forms,backbone.js,Forms,Backbone.js,任何主体都可以举例说明如何使用主干js模型保存多部分表单吗 如何将表单数据与文件数据组合并保存到模型 我正在设置模型属性以及如何在属性中包含文件数据。我将其中一个站点的代码改编为Forc主干,以将属性保存为文件。我无法把它和我的身体联系起来 <form enctype="multipart/form-data"> <input type="file" name="ImageData"> <input type="text" name="UserName"&g

任何主体都可以举例说明如何使用主干js模型保存多部分表单吗

如何将表单数据与文件数据组合并保存到模型

我正在设置模型属性以及如何在属性中包含文件数据。我将其中一个站点的代码改编为Forc主干,以将属性保存为文件。我无法把它和我的身体联系起来

<form enctype="multipart/form-data">
  <input type="file" name="ImageData">
  <input type="text" name="UserName">
</form>
看法

    this.model.data =  form_data;
var profiledata;        
if (window.FormData) {  
        profiledata = new FormData(); 
        console.log(profiledata);   
}

if (profiledata) {  
    jQuery.each($('#ImageData')[0].files, function(i, file) {
        //reader.readAsDataURL(file);  
        profiledata.append("ImageData[]", file);

    });     
}   
    this.model.ImageData = profiledata;

    //and save the data
    this.model.save

我不是在模型中处理
FileReader
逻辑,而是在视图中管理它

看看这个:

<form enctype="multipart/form-data">
  <input type="file" name="ImageData">
  <input type="text" name="UserName">
  <button>Submit</button>
</form>

这一行的
fileEvent
初始化在哪里
avatar\u数据:fileEvent.target.result
?问得好!它不是:)我的意思是让e和fileEvent指向同一个东西。我将更新以确保正确。
<form enctype="multipart/form-data">
  <input type="file" name="ImageData">
  <input type="text" name="UserName">
  <button>Submit</button>
</form>
var FormView = Backbone.View.extend({
  events: {
    "submit form" : "submit",
    "change input[type=file]" : "encodeFile"
  },

  render: function () {
    var content = this.template(); 
    this.$el.html(content);
    return this;
  },

  encodeFile: function (event) {
    var file = event.currentTarget.files[0];
    var reader = new FileReader();
    reader.onload = function (fileEvent) {
      this.model.set({ 
        avatar_data: fileEvent.target.result // file name is part of the data
      });
    }.bind(this)
    reader.onerror = function () {
      console.log("error", arguments)
    }
    reader.readAsDataURL(file);
  },

  submit: function (event) {
    event.preventDefault();
    this.model.set({ UserName: $('input[name=UserName]').val() });
    this.model.save();
  }
});