javascript - Vimeo API 方法中的变量“未定义”
问题描述
所以我在我的 Angular 8 应用程序中嵌入了一个 vimeo 视频,现在我试图在视频开始播放并结束后触发一些动画。本质上,如果屏幕宽度为<800
,则变量isMobile
为true
。接下来,我play
调用了 vimeo 方法,该方法检查 if isMobile
istrue
并将load_completed
(动画触发器)设置为true
. 问题是我的变量isMobile
返回undefined
,这是为什么呢?
isMobile = false;
constructor() { }
ngOnInit() {
this.innerWidth = window.innerWidth;
console.log(this.innerWidth);
if (this.innerWidth < 800) {
this.isMobile = true;
}
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);
player.on('play', function() {
//isMobile returns undefined why?
console.log(this.isMobile);
if (this.isMobile) {
this.load_completed = true;
}
console.log('Played the video');
});
player.on('ended', function(data) {
console.log('Video ended');
});
}
解决方案
尝试arrow function
如下使用,这里是explanation
player.on('play',()=>{
console.log(this.isMobile);
})
推荐阅读
- python - 无效参数:无法终止已退出进程,使用 geckodriver 在 Python 中运行 Selenium
- android - 如何在用于开发的安卓手机上退出恢复模式循环?
- vue.js - 如何从“props”数组中拼接一个对象并将其分配给预定义的“data”属性,使其可访问和反应?
- android - 将 LocalDao getData() 与 ViewModel 一起使用时接收 null
- html - 将一个组件垂直居中,并将 appbar 置于屏幕材质 UI 的顶部
- r - 分数向量(来自 MASS)如何进行错误检查?
- kernel - 用户程序的内核模式
- python - 如何压缩大文件?
- python - Python多线程随机生成
- codeigniter-4 - 远程服务器上无法访问 Codeigniter 4 子目录控制器