- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在表单和表单数据中有一个上传图像。表单数据存储在模型中
如何将表单数据与文件数据结合并保存模型
我正在设置模型属性以及如何在属性中包含文件数据。我找到了这个链接 Forcing Backbone to save an attribute as a file .我无法将它与我的表格联系起来
<form enctype="multipart/form-data">
<input type="file" name="ImageData">
<input type="text" name="UserName">
</form>
User = Backbone.Model.extend({
readAvatar : function (file, callback) {
var reader = new FileReader(); // File API object for reading a file locally
reader.onload = (function (theFile, self) {
return function (e) {
// Set the file data correctly on the Backbone model
self.set({avatar_file_name : theFile.name, avatar_data : fileEvent.target.result});
// Handle anything else you want to do after parsing the file and setting up the model.
callback();
};
})(file, this);
reader.readAsDataURL(file); // Reads file into memory Base64 encoded
}
attribute : function(attr) {
return Object.defineProperty(this.prototype, attr, {
get: function() {
return this.get(attr);
},
set: function(value) {
var attrs;
attrs = {};
attrs[attr] = value;
return this.set(attrs);
}
});
};
});
var form_data = form.serializeArray();
在提交表单后的 View 中,我正在序列化表单数据并读取文件。提交前在属性data中设置formdata,在Imagedata中设置文件
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
我可以将一些字段保存为表单数据,将其他字段保存为属性吗?
如果我错了请告诉我。现在,在我提交后,我收到错误消息,因为“在未实现接口(interface) FormData 的对象上调用了‘追加’。”
这里avatar_file_name 和avatar_data 应该设置什么名字?我需要提交 field id 为 ImageData 的表单数据文件
最佳答案
我遇到了和你一样的问题。你可以在上面看到我解决它的方式。
var $form = $("myFormSelector");
//==> GET MODEL FROM FORM
var model = new MyBackboneModel();
var myData = null;
var ajaxOptions = {};
// Check if it is a multipart request.
if ($form.hasFile()) {
myData = new FormData($form[0]);
ajaxOptions = {
type: "POST",
data: myData,
processData: false,
cache: false,
contentType: false
};
} else {
myData = $form.serializeObject();
}
// Save the model.
model.save(myData, $.extend({}, ajaxOptions, {
success: function(model, data, response) {
//==> INSERT SUCCESS
},
error: function(model, response) {
//==> INSERT ERROR
}
}));
hasFile 是扩展 JQuery 函数的自定义方法。
$.fn.hasFile = function() {
if ($.type(this) === "undefined")
return false;
var hasFile = false;
$.each($(this).find(":file"), function(key, input) {
if ($(input).val().length > 0) {
hasFile = true;
}
});
return hasFile;
};
关于javascript - Backbonejs 保存文件和表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20805043/
我正在使用 Backbonejs 和 Requirejs 创建单页 Web 应用程序。我的应用程序似乎存在内存泄漏。 为了测试,我创建了一个示例代码。它创建一个 View 对象,调用其 render
我从加载对话框的位置有一个详细信息 View 。 此对话框有一个表单,用户可以在其中输入一些值(对应于我的模型属性) 我从详细信息 View 传递模型并在同一模型中设置值(在表单字段的更改操作上) 现
我正在尝试添加 Jquery Jplayer http://jplayer.org到我的 Backbone 应用程序,但无法运行它。我将脚本设置到 RequireJS 配置文件中,控制台告诉我脚本已加
Click here for the js fiddle example 此模板应该在集合中呈现新消息,我正在尝试遵循 this tuorial使用我自己的版本来呈现消息
由于某种原因,我在保存模型时无法输入 success 和 error block 。无论我的响应是成功“201”还是错误“404”,我的代码都不会命中 debugger 行。有谁知道可能出了什么问题吗
我有一个BackboneJS应用程序,可在 View 上显示Youtube视频。因此,当用户单击缩略图时,Youtube-iframe将打开并播放视频。当用户关闭它并想再次播放时,什么也没有发生。为了
我刚刚开始学习 BackboneJS,我正在编写一个小示例文档来测试它的工作方式。但我很难理解它,目前它根本没有任何意义:) 所以,我有下一个文件结构: /* application.js */ va
在我的 Backbone.js 应用程序中,我有一个路由结构,其中包含一些我只想在一个处理程序中处理的公共(public)部分。例如,这些 URL /#scenario/1/show-report /
我刚刚开始学习backbonejs。这是我的一些演示代码行: var i = 0; Player = Backbone.Model.extend({
我有一个 Backbone 应用程序,使用 HandlebarsJS 作为我的 HTML 模板。现在我有一个按钮可以触发登录弹出框。我的问题是,我必须双击按钮/链接,直到弹出窗口打开。这是为什么??我
我是 Backbonejs 的新手,试图理解这里的模型。我定义了一个这样的模型 var Employee=Backbone.Model.extend({ initialize: functi
在 BackboneJS 的 router.js 中使用 this.initialize(); 和 有什么区别 require(['router'],function(Router) { ro
我正在使用 Rails 3.1 mongodb 和 backbonejs 构建小型单页应用程序。 我有两个可通过 json api 获得的资源。我在 backbone 中创建了两个模型和集合,看起来像
我可以在哪里进行一些计算,例如计算员工工资?是否需要使用外部文件,或者我可以使用模型、集合或 View ? 最佳答案 模型的属性表示数据实体(员工)的状态。它的方法应该改变数据实体的状态。所以模型的方
我在表单和表单数据中有一个上传图像。表单数据存储在模型中 如何将表单数据与文件数据结合并保存模型 我正在设置模型属性以及如何在属性中包含文件数据。我找到了这个链接 Forcing Backbone t
我将 Tastypie 用于我的 RESTful api,将 Backbonejs 用于前端。模型的 fetch 工作正常,但是,对于 Backbone.Collection 我似乎得到了错误的回应:
我有一个代表产品的模型(在 UL 中显示为 LI 项目)和一个包含这些产品的集合。 当我单击一个 LI 时,我希望基础模型的属性设置为 true,而集合中的所有其他模型的属性设置为 false。 //
我想在我的页面顶部创建一个固定位置的导航菜单,它应该在我点击相关链接后显示不同的 View 。我有一个 index.php 文件、一个 mainpage.js 文件和用于集合、模型、 View 、路由
您好,我是 Backbone 的新手,我只是稍微尝试了一下,这是我的代码: var Users = Backbone.Collection.extend ({ url : 'h
我的应用程序的索引页面位于http://cms/admin(我在本地主机上)。索引页上只有一个 a 元素: deneme 当我点击链接时,它会转到/cms/admin/test 我想使用 Backbo
我是一名优秀的程序员,十分优秀!