Vuejs,插件,未找到全局方法/属性

时间:2017-04-01 11:04:00

标签: plugins vue.js

我在这里做错了什么?我安装了一个插件,并设置了一个全局属性,但是在我的方法中我无法访问该属性。

我的根Vue组件的main.js

import Vue from 'vue'
...
Vue.use({
  install (Vue) {
    let googleAuth = null
    console.log('called!')
    Vue.auth = {
      setAuth (auth) {
        googleAuth = auth
      },
      isAuthenticated () {
        return googleAuth !== null && googleAuth.isSignedIn.get()
      },
      currentUser () {
        return googleAuth.currentUser.get()
      },
      currentUserProfile () {
        return this.currentUser().getBasicProfile()
      },
      getIdToken () {
        return this.currentUser().getAuthResponse().id_token
      }
    }
  }
})

来自root Vue组件的App.vue

<template></template>
<script>
  export default {
    name: 'Trudit',
    data () {
      return {
        title: 'Trudit'
      }
    },
    methods: {
      onSignInSuccess (googleUser) {
        console.log(this)
        this.auth.setAuth(googleUser)   //<-  this.auth === undefined
      }
    }
  }
</script>

错误

  

未捕获的TypeError:无法读取未定义的属性“setAuth”       在VueComponent.onSignInSuccess(评估为57(0.83049e6 ... .hot-update.js:13),:17:16)       at boundFn(eval at(app.js:630),:126:14)       在H_。 (CB = gapi.loaded_0:285)       在cb = gapi.loaded_0:175       在h.r2(cb = gapi.loaded_0:78)       at xs(cb = gapi.loaded_0:81)       在Wq(cb = gapi.loaded_0:81)       在_.C.uea(cb = gapi.loaded_0:80)       在Ap(cb = gapi.loaded_0:74)

1 个答案:

答案 0 :(得分:4)

正如@Srinivas Damam指出我需要使用原型设置它。

EXACT_COUNT_DISTINCT()修复了它