如何从另一个函数访问全局函数(Vue.prototype.myFn)?
How to access a global function (Vue.prototype.myFn) from another function?
我在一个 nuxt.js 项目中并试图创建全局函数,但我遇到了这个错误:
Cannot read property '$toggleBodyClass' of undefined
这是我的代码 (plugins/globals.js):
import Vue from 'vue';
Vue.prototype.$toggleBodyClass = (addRemoveClass, className) => {
const elBody = document.body;
if (addRemoveClass === 'addClass') {
elBody.classList.add(className);
} else {
elBody.classList.remove(className);
}
};
Vue.prototype.$setModalBackdrop = () => {
this.$toggleBodyClass('addClass', 'modal-open'); // ** How to make this work? **
};
当我在我的组件中使用它时它工作得很好 (components/myComp.vue):
<template>
<div>
<button @click="handelClick">Toggle Class</button>
</div>
</template>
<script>
export default {
methods: {
handleClick() {
this.$toggleBodyClass('addClass', 'modal-open');
},
},
};
</script>
请帮忙,谢谢。
只需更改您的代码
this.$toggleBodyClass
至
Vue.prototype.$toggleBodyClass
在 nuxt 中,您可以使用注入函数使其可以从上下文、vuex 存储等访问 inject
export default ({ app }, inject) => {
inject('myInjectedFunction', (string) => console.log('That was easy!', string))
}
我在一个 nuxt.js 项目中并试图创建全局函数,但我遇到了这个错误:
Cannot read property '$toggleBodyClass' of undefined
这是我的代码 (plugins/globals.js):
import Vue from 'vue';
Vue.prototype.$toggleBodyClass = (addRemoveClass, className) => {
const elBody = document.body;
if (addRemoveClass === 'addClass') {
elBody.classList.add(className);
} else {
elBody.classList.remove(className);
}
};
Vue.prototype.$setModalBackdrop = () => {
this.$toggleBodyClass('addClass', 'modal-open'); // ** How to make this work? **
};
当我在我的组件中使用它时它工作得很好 (components/myComp.vue):
<template>
<div>
<button @click="handelClick">Toggle Class</button>
</div>
</template>
<script>
export default {
methods: {
handleClick() {
this.$toggleBodyClass('addClass', 'modal-open');
},
},
};
</script>
请帮忙,谢谢。
只需更改您的代码
this.$toggleBodyClass
至
Vue.prototype.$toggleBodyClass
在 nuxt 中,您可以使用注入函数使其可以从上下文、vuex 存储等访问 inject
export default ({ app }, inject) => {
inject('myInjectedFunction', (string) => console.log('That was easy!', string))
}