我正在尝试将事件数据发送到Nuxt项目中的Google Tag Manger。此程序包https://www.npmjs.com/package/@nuxtjs/google-tag-manager提供了我所需要的。他们给出的示例假设我想从组件内部调用该函数:
this.$gtm.pushEvent({ event: 'myEvent', ...someAttributes })
但是,我实际上需要从未定义this
的Vuex模块中调用该函数。我想我可以这样做:
import GTM from '@nuxtjs/google-tag-manager';
export default {
actions: {
myAction(_, data) {
GTM.pushEvent(data);
},
...
但是结果是:
TypeError: _nuxtjs_google_tag_manager__WEBPACK_IMPORTED_MODULE_3___default.a.pushEvent is not a function
我也尝试过:
import Vue from 'vue';
const vm = new Vue();
export default {
actions: {
myAction(_, data) {
vm.$gtm.pushEvent(data);
},
...
但是结果是:
TypeError: Cannot read property 'pushEvent' of undefined
有趣的是,当我登录vm
时,我将$gtm: undefined
视为属性。因此,显然该插件在那里,但尚未激活?我知道我在这里缺少一些基本的东西...
this.$gtm.push({ event: 'myEvent', ...someAttributes })
它是推送而不是pushEvent