Javascript 函数未从angular 5中的click函数调用
大家好,我在angular 5中遇到了一个小问题,我试图调用一个从公共ts文件导入的公共会话检查方法,我在加载页面时使用会话检查方法,单击注销按钮将用户重定向到登录页面。但在加载页面时,它可以正常工作,但单击按钮时会出现未定义的错误,请提前帮助感谢 仪表板 进口Javascript 函数未从angular 5中的click函数调用,javascript,angular,typescript,angular5,Javascript,Angular,Typescript,Angular5,大家好,我在angular 5中遇到了一个小问题,我试图调用一个从公共ts文件导入的公共会话检查方法,我在加载页面时使用会话检查方法,单击注销按钮将用户重定向到登录页面。但在加载页面时,它可以正常工作,但单击按钮时会出现未定义的错误,请提前帮助感谢 仪表板 进口 此内部的函数(){…}定义不是指您的组件,而是指该函数上下文。使用箭头功能,以便此上下文将保持绑定到组件: logout() { session.signOut().then(() => { this.s.checkI
此
内部的函数(){…}
定义不是指您的组件,而是指该函数上下文。使用箭头功能,以便此上下文将保持绑定到组件:
logout() {
session.signOut().then(() => {
this.s.checkIfSignedIn();
});
}
此外,在声明类变量u
时,还应删除var
关键字
奖金建议:
- 注意编辑器/linter警告(要在访问全局对象(如
gapi
)时抑制错误,请先这样声明:declare const gapi:any;
)
- 关心代码缩进吗
- 尽量使变量名具有描述性,不要使用像
a
或u
这样的名称,这样你就不会那么容易在代码中迷失(顺便说一句,你也有utils
变量,也许你应该使用它,而不是定义一个名为u
的新变量)
您用var
声明它,并用this
调用它。它不是组件的属性,这就是它不工作的原因。您在承诺中有一个不同的范围
logout() {
let self = this;
var session = gapi.auth2.getAuthInstance();
session.signOut().then( function() {
localStorage.clear();
self.s.checkIfSignedIn();
});
}