Vue.js 访问父变量
Vue.js access parent variable
我有一个加载 Dropzone.js 的 Vue 组件。
无法使用vue2-dropzone,因为它不允许附加到body。
我的组件看起来像:
export default {
props: [
'maxsize',
'csrf',
'url'
],
data() {
return {
showUploader: false,
dropZone: {},
dropzoneOptions: {
url: this.url,
success: function (file, response) {
console.log(file.filename + ' ' + response);
},
error: function (file, response) {
console.log(response);
return false;
},
dragleave: function () {
var dragOver = document.getElementById('dragOver');
dragOver.classList.add('hidden');
this.showUploader = true;
}
},
}
},
mounted() {
this.dropZone = new Dropzone(document.body, this.dropzoneOptions);
},
methods: {
}
}
我想在 dragleave
上将 showUploader
更改为 true
,但我不知道如何访问该变量。我真的迷路了。
您正在使用函数 () 语法,这意味着 this 在函数的上下文中,无法访问 this.showUploader
将函数更改为箭头函数,这将解决问题
export default {
props: ["maxsize", "csrf", "url"],
data() {
return {
showUploader: false,
dropZone: {},
dropzoneOptions: {
url: this.url,
success: function (file, response) {
console.log(file.filename + " " + response);
},
error: function (file, response) {
console.log(response);
return false;
},
dragleave: () => {
var dragOver = document.getElementById("dragOver");
dragOver.classList.add("hidden");
this.showUploader = true; // this.showUploader will access the Vue object
},
},
};
},
mounted() {
this.dropZone = new Dropzone(document.body, this.dropzoneOptions);
},
methods: {},
};
我有一个加载 Dropzone.js 的 Vue 组件。 无法使用vue2-dropzone,因为它不允许附加到body。
我的组件看起来像:
export default {
props: [
'maxsize',
'csrf',
'url'
],
data() {
return {
showUploader: false,
dropZone: {},
dropzoneOptions: {
url: this.url,
success: function (file, response) {
console.log(file.filename + ' ' + response);
},
error: function (file, response) {
console.log(response);
return false;
},
dragleave: function () {
var dragOver = document.getElementById('dragOver');
dragOver.classList.add('hidden');
this.showUploader = true;
}
},
}
},
mounted() {
this.dropZone = new Dropzone(document.body, this.dropzoneOptions);
},
methods: {
}
}
我想在 dragleave
上将 showUploader
更改为 true
,但我不知道如何访问该变量。我真的迷路了。
您正在使用函数 () 语法,这意味着 this 在函数的上下文中,无法访问 this.showUploader
将函数更改为箭头函数,这将解决问题
export default {
props: ["maxsize", "csrf", "url"],
data() {
return {
showUploader: false,
dropZone: {},
dropzoneOptions: {
url: this.url,
success: function (file, response) {
console.log(file.filename + " " + response);
},
error: function (file, response) {
console.log(response);
return false;
},
dragleave: () => {
var dragOver = document.getElementById("dragOver");
dragOver.classList.add("hidden");
this.showUploader = true; // this.showUploader will access the Vue object
},
},
};
},
mounted() {
this.dropZone = new Dropzone(document.body, this.dropzoneOptions);
},
methods: {},
};