Javascript 和 VueJS 变量访问

标签 javascript dropzone.js vue.js

我想从 success Dropzone 事件回调中访问 VueJS 变量。 所有代码都没有问题,DropzoneJS 和 VueJS 可以很好地协同工作,但是我的变量 photos 在成功回调中不可访问。

这是我的脚本的一个简单实现:

<script>
    import Dropzone from 'dropzone';

    export default {  
        data() {
            return {
                photos: []
            };
        },

        ready() {
            Dropzone.autoDiscover = false;

            new Dropzone('form#upload-form', {
                url: '...',
                success: function(file, response) {

                    this.photos = response.data.photos;

                    // this.photos is not accessible here

                }
            });
        }
    }
</script>

是否有以这种方式访问​​ VueJS 组件变量的最佳实践? 谢谢

最佳答案

按照您目前的做法,this 引用可能存在范围界定问题。

我建议在 Dropzone 实例化之外重新分配 this 并像这样使用它...

ready() {
    Dropzone.autoDiscover = false;

    const self = this;

    new Dropzone('form#upload-form', {
        url: '...',
        success: function(file, response) {

            self.photos = response.data.photos;

            // this.photos is not accessible here

        }
    });
}

关于Javascript 和 VueJS 变量访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558252/

相关文章:

HTML 属性中的 JavaScript 片段 : special characters

error-handling - Dropzone.js-视觉效果无法正确显示

azure - 使用构建文件在 Azure 上启动 Nuxt SSR 应用程序

typescript - 未找到此依赖项 - TypeScript、Vue

javascript - webpack 模块 Node 产生错误 EISDIR : illegal operation on a directory

javascript - 是什么导致错误 "Can' t 从释放的脚本中执行代码”

javascript - iOS 文件上传时缺少选项 "Upload Photo or Video"

javascript - 我可以等待 fs.readdir 但我不知道为什么

php - 在ajax中混合javascript和php变量

javascript - 如何使用 `document.querySelector()` 访问 ExtJS 元素?