余烬与 jquery 文件上传
Ember with jquery file upload
我正在尝试将jquery文件上传与ember一起使用.js。我希望实现的是有一个文件输入,当用户浏览图片并点击上传按钮时,jquery 文件上传将上传文件并返回上传文件的位置。我将从表单的其余部分收集其他数据,并使用 Ember 数据发布信息,其中包括图像 URL 和表单数据的其余部分。
我无法让它工作,但相同的代码适用于带有 php 后端的纯 html 文件。
在这里,我在jsbin中包含非功能性代码,其中包括我的模板和应用程序.js代码
http://jsbin.com/EtOzeKI/1/edit
下面是您可以使用的最小组件:
// index.html
<script src="/vendor/jquery/jquery.js"></script>
<script src="/vendor/jquery-ui/ui/jquery-ui.js"></script>
<script src="/vendor/jquery-file-upload/js/jquery.iframe-transport.js"></script>/script>
<script src="/vendor/jquery-file-upload/js/jquery.fileupload.js"></script>
// components/file-upload.js
export default Ember.TextField.extend({
attributeBindings: ['name', 'data-url', 'multiple'],
tagName: "input",
type: 'file',
name: "file[]",
"data-url": function(){
return this.get("path");
}.property("path"),
multiple: true,
didInsertElement: function() {
this.$().fileupload();
}
});
// to use in your hbs template
{{file-upload path="pathToUploadTo"}}
这是我在应用程序中使用的上传按钮: 它建立了一个输入按钮,并在更改时自动上传。
{{view App.UploadButton groupBinding="model"}}
App.UploadButton = Ember.View.extend({
tagName: 'input',
attributeBindings: ['type'],
type: 'file',
originalText: 'Upload Finished Product',
uploadingText: 'Busy Uploading...',
newItemHandler: function (data) {
var store = this.get('controller.store');
store.push('item', data);
},
preUpload: function () {
var me = this.$(),
parent = me.closest('.fileupload-addbutton'),
upload = this.get('uploadingText');
parent.addClass('disabled');
me.css('cursor', 'default');
me.attr('disabled', 'disabled');
},
postUpload: function () {
var me = this.$(),
parent = me.closest('.fileupload-addbutton'),
form = parent.closest('#fake_form_for_reset')[0],
orig = this.get('originalText');
parent.removeClass('disabled');
me.css('cursor', 'pointer');
me.removeAttr('disabled');
form.reset();
},
change: function (e) {
var self = this;
var formData = new FormData();
// This is just CSS
this.preUpload();
formData.append('group_id', this.get('group.id'));
formData.append('file', this.$().get(0).files[0]);
$.ajax({
url: '/file_upload_handler/',
type: 'POST',
//Ajax events
success: function (data) { self.postUpload(); self.newItemHandler(data); },
error: function () { self.postUpload(); alert('Failure'); },
// Form data
data: formData,
//Options to tell jQuery not to process data or worry about content-type.
cache: false,
contentType: false,
processData: false
});
}
});
相关文章:
- 删除表,但不删除表单和文件 jQuery
- Ruby on Rails:“找不到文件'jquery.ui.datepicker'”
- 从 html 页面调用文件 jQuery 文件
- Javascript 文件修改了未从中调用它的 html 文件?Jquery 选择器
- 未呈现Javascript文件/Jquery
- 上传文件jQuery ajax MVC
- 我在哪里可以得到这个文件jquery.min.js
- 使用委托点击按钮下载文件JQuery
- 找不到文件“jquery-ui”
- JavaScript文件(jQuery步骤)未在Google Chrome中加载
- 自动内联CSS从CSS文件(jquery?ajax吗?php ?)
- 如何使用本地json文件jquery或angularjs实现文本框的自动完成
- 在JSPX文件中包含JS文件(JQuery)
- 如何将变量值从后面的代码传递到外部JavaScript文件(jQuery文件)
- 如何获得扩展图像文件jquery.filer
- 检测设备和交换CSS文件- jQuery
- 警报文本从文件JQuery / javascript
- 如何排序日期和字符串在同一列在jquery插件有文件jquery. datatable .js
- 移动谷歌地图api代码到单独的文件+ jquery
- 获取按钮id从js文件和使用在另一个js文件- jquery