我在这里做错什么了?我安装了一个插件,并设置了一个全局属性,但是在我的方法中,我无法访问该属性。
根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
}
}
}
})
根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>
错误
uncaught typeerror:无法读取未定义的属性“setauth”
在VueCoMangTun.OnScript成功(EVAN为57(0.83049 E6……热更新。JS:13),:17:16)
在(630:)
在H。(cb=gapi.loaded_0:285)
在cb=gapi.加载时
在h.r2时(cb=gapi.loaded_0:78)
在xs时(cb=gapi.loaded_0:81)
在WQ时(Cb=Gapi.loaded_0:81)
在c.uea(cb=gapi.loaded_0:80)
在AP(CB=GAPI.LOADED U 0:74)
最佳答案
正如@srinivas daram指出的,我需要使用prototype设置它。Vue.prototype.auth
已修复
关于plugins - Vuejs,插件,找不到全局方法/属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43156014/