我正在使用该包 https://github.com/tim-evans/ember-file-upload
在他们的示例中,他们调用路线动作来上传图像
onfileadd=(route-action "uploadImage")}}
但我想改为调用组件动作
我试过
onfileadd="uploadImage"}}
并在组件中添加了操作:
uploadImage: function (file) {
console.log(file);
let self = this;
RSVP.cast(Ember.$.get(ENV.APP.API_HOST + "/v1/teams/signed_url/")).then(function (response) {
return file.upload(response.url, {
data: response.credentials
});
}).then(function (response) {
self.set('url', response.headers.Location);
});
},
但是我得到了错误:
未捕获的TypeError:无法读取属性' uploadImage'未定义的
如果我将其移动到路由,该操作将按预期工作,但我需要更新组件中的正确属性(路由中不存在)
知道如何将其更改为组件功能吗?
答案 0 :(得分:1)
您应该使用action
帮助程序:
onfileadd=(action "uploadImage")}}
还要确保uploadImage
在组件的actions
哈希中:
export default Ember.Component.extend({
// ...
actions: {
uploadImage() { // <-- make sure this is inside the actions hash
// ...
}
}
})