Ember.js 从ember uploader S3 url设置模型属性?
我有余烬上传成功上传文件到S3。上传完图像后,我想将model属性Ember.js 从ember uploader S3 url设置模型属性?,ember.js,amazon-s3,Ember.js,Amazon S3,我有余烬上传成功上传文件到S3。上传完图像后,我想将model属性image\u url设置为返回的url,然后最好提交表单来创建记录。我该怎么做 app/models/post.js: import DS from 'ember-data';
image\u url
设置为返回的url,然后最好提交表单来创建记录。我该怎么做
app/models/post.js:
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
body: DS.attr('string'),
image_url: DS.attr('string')
});
app/templates/posts/new.hbs:
<div class="new-post-form">
{{input type="text" placeholder="Name" value=name}}
{{input type="text" placeholder="Message" value=body}}
{{s3-upload value=image_url}}
<button {{action 'addPost'}} class="submit">Submit</button>
</div>
正如你所看到的,我尝试将s3上传程序组件的
值设置为image\u url
,但似乎没有任何作用。如果我有一个单独的上传
模型,并将其作为关联保存在帖子上,会更容易些吗?
import Ember from 'ember';
import EmberUploader from 'ember-uploader';
export default EmberUploader.FileField.extend({
url: 'http://localhost:3000/sign',
filesDidChange: (function() {
var uploadUrl = this.get('url');
var files = this.get('files');
var uploader = EmberUploader.S3Uploader.create({
url: uploadUrl
});
uploader.on('didUpload', function(response) {
// S3 will return XML with url
var uploadedUrl = Ember.$(response).find('Location')[0].textContent;
uploadedUrl = decodeURIComponent(uploadedUrl); // => http://yourbucket.s3.amazonaws.com/file.png
console.log("UPLOADED ! : " + uploadedUrl);
});
if (!Ember.isEmpty(files)) {
uploader.upload(files[0]); // Uploader will send a sign request then upload to S3 }
}).observes('files')
});