Я пытаюсь войти в систему с помощью Google vue, следуя документу Google, и все работает, но у меня нет доступа к методу внутри attachClickHandler.
new Vue({
el: '#loginModal',
data: { ...
},
methods: {
gInit: function() {
gapi.load('auth2', function() {
auth2 = gapi.auth2.init({
client_id: 'MY-Client-id.apps.googleusercontent.com',
cookiepolicy: 'single_host_origin',
//scope: 'additional_scope'
});
auth2.attachClickHandler(document.getElementById('googleBtn'), {},
function(googleUser) {
const profile = googleUser.getBasicProfile();
const gplusObj = {
name: profile.getName(),
email: profile.getEmail(),
provider: 'google',
image: profile.getImageUrl(),
provider_user_id: profile.getId()
};
this.socialLogin(gplusObj);
},
function(error) {
alert(JSON.stringify(error, undefined, 2));
});
});
},
socialLogin: function(data) {
axios.post(`${this.api}/api/sociallogin`, data)
.then(res => {
console.log(res);
}).catch(err => {
console.log(err);
});
},
},
mounted: function() {
this.gInit();
}
})
Здесь вызов функции socialLogin()
внутри attachClickHandler()
дает ошибку this.socialLogin is not a function
не определено. Почему это не работает?