如何将数据从组件传递到外部js文件

时间:2020-02-16 13:11:22

标签: vue.js vuejs2 dropzone.js

我想在包含我的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.entrythis.saveNote不可用,因为它们来自我的Vue组件。如何使它们可被外部文件访问?

1 个答案:

答案 0 :(得分:0)

一个更通用的解决方案是让组件传入一个while a := input("array:"): x.append(a) 事件处理程序,该事件处理程序可以访问组件的数据和方法,如下所示。该解决方案使配置与组件内部分离。

dropzoneConfig.js:

success

App.vue:

export const dropzoneConfig = ({ onSuccess }) => ({
  //...
  success(file, xhr) {
    //...
    onSuccess(xhr.data)
  }
})