【发布时间】:2021-06-07 05:38:15
【问题描述】:
说明
在组件的mounted() 部分,我添加了一个事件侦听器,它应该调用其中一种方法。
代码
export default {
methods: {
changeState: function(el) {console.log(el);}
},
mounted() {
document.addEventListener('DOMContentLoaded', function() {
//I'm using materialize.css carousel here
//---------------------------------------
var elems = document.querySelectorAll('.carousel');
M.Carousel.init(elems, {
onCycleTo: function(el) {
this.changeState(1);
}
});
});
}
}
问题
我认为有两个问题:
- onCycleTo 中的 this 指的是 onCycleTo 中的函数,而不是方法部分
- eventListener 被添加到文档中,该文档位于不同的范围内,因此 this.changeState(1) 引用了一个全局函数(不存在)
可能的解决方案
我认为有可能以某种方式从全局范围解决方法,但我不知道如何。也欢迎任何其他解决方案。
我该如何解决这些问题?
【问题讨论】:
标签: javascript vue.js materialize vuejs3