我正在从外部js文件中导出函数,并尝试以这种方式操作Vue数据,但是目前,我无法做到这一点。这是我到目前为止尝试过的:
导入的js文件是这样的:
import * as device from "../Device";
调用了这样的方法:
device.playURL(this.currentTVChannelUrl,this.loading,this.isPlayerShown);
这是device.js文件中名为playURL的方法:
export function playURL(url,loading,isPlayerShown){
player.play({
uri: url,
});
loading = false;
isPlayerShown = true;
}
它不会更改Vue组件的操纵数据。有办法改变它们吗?
最佳答案
您可以将playURL的此上下文绑定到当前组件,并使它起作用。
let bindedplayURL = device.playURL.bind(this);
bindedplayURL(this.currentTVChannelUrl)
playURL(url) {
player.play({
uri: url,
});
this.loading = false /* changes data in vue component directly no need to pass these varibles separately */
this.isPlayerShown = true;
}
但是,如果您创建了playURL函数是出于在Vue文件中各个位置使用它的原因。我什至建议您直接看一下Mixins,它只能解决此目的,他们会智能地混合数据和方法本身。