我想在包含我的Dropzone配置的外部JavaScript文件中使用组件的数据。我尝试使用Function.prototype.bind
失败:
export const dropzoneConfig = {
url: api.http.baseUrl + '/files',
thumbnailWidth: 150,
maxFilesize: 5,
acceptedFiles: 'image/*',
addRemoveLinks: true,
sending: function (file, xhr, formData) {
formData.append('type', 'photo');
},
success: function (file, xhr) {
file.id = xhr.data.id;
if (this.entry.files === undefined) {
this.entry.files = [];
}
this.entry.files.push(xhr.data);
this.saveNote();
}.bind(this),
headers: api.http.authHeaders().headers
};
在上面的代码中,this.entry
和this.saveNote
不可用,因为它们来自我的Vue组件。如何使它们可被外部文件访问?
答案 0 :(得分:0)
一个更通用的解决方案是让组件传入一个while a := input("array:"):
x.append(a)
事件处理程序,该事件处理程序可以访问组件的数据和方法,如下所示。该解决方案使配置与组件内部分离。
dropzoneConfig.js:
success
App.vue:
export const dropzoneConfig = ({ onSuccess }) => ({
//...
success(file, xhr) {
//...
onSuccess(xhr.data)
}
})