Javascript 如何将VueJS方法范围绑定到Firebase Promise
如何将VueJs方法范围绑定到返回的Firebase承诺?为了调用VueJS模式Javascript 如何将VueJS方法范围绑定到Firebase Promise,javascript,firebase,vue.js,firebase-authentication,Javascript,Firebase,Vue.js,Firebase Authentication,如何将VueJs方法范围绑定到返回的Firebase承诺?为了调用VueJS模式 login: function () { fireAuth.signInWithEmailAndPassword(this.signIn.email, this.signIn.password) .then(function (user) { if (!user.emailVerified) {
login: function () {
fireAuth.signInWithEmailAndPassword(this.signIn.email, this.signIn.password)
.then(function (user) {
if (!user.emailVerified) {
this.$modal.show('email_verification', {
text: 'Please verify your email'
})
}
}, function (error) {
console.log(error.message);
})
}
现在,这里是错误:
TypeError:无法读取未定义的属性“$modal”
在promise回调中使用arrow函数,以便
此
按词汇绑定
login: function () {
fireAuth.signInWithEmailAndPassword(this.signIn.email, this.signIn.password)
.then( (user) => {
if (!user.emailVerified) {
this.$modal.show('email_verification', {
text: 'Please verify your email'
})
}
}, (error) => {
console.log(error.message);
})
}
或者声明一个var self
指向方法内的vue实例,并使用self
使用vue实例,因为回调现在将在var self
变量上有一个闭包
login: function () {
var self = this;
fireAuth.signInWithEmailAndPassword(this.signIn.email, this.signIn.password)
.then(function (user) {
if (!user.emailVerified) {
self.$modal.show('email_verification', {
text: 'Please verify your email'
})
}
}, function (error) {
console.log(error.message);
})
}