Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数未从angular 5中的click函数调用_Javascript_Angular_Typescript_Angular5 - Fatal编程技术网

Javascript 函数未从angular 5中的click函数调用

Javascript 函数未从angular 5中的click函数调用,javascript,angular,typescript,angular5,Javascript,Angular,Typescript,Angular5,大家好,我在angular 5中遇到了一个小问题,我试图调用一个从公共ts文件导入的公共会话检查方法,我在加载页面时使用会话检查方法,单击注销按钮将用户重定向到登录页面。但在加载页面时,它可以正常工作,但单击按钮时会出现未定义的错误,请提前帮助感谢 仪表板 进口 此内部的函数(){…}定义不是指您的组件,而是指该函数上下文。使用箭头功能,以便此上下文将保持绑定到组件: logout() { session.signOut().then(() => { this.s.checkI

大家好,我在angular 5中遇到了一个小问题,我试图调用一个从公共ts文件导入的公共会话检查方法,我在加载页面时使用会话检查方法,单击注销按钮将用户重定向到登录页面。但在加载页面时,它可以正常工作,但单击按钮时会出现未定义的错误,请提前帮助感谢

仪表板 进口

内部的
函数(){…}
定义不是指您的组件,而是指该函数上下文。使用箭头功能,以便
此上下文将保持绑定到组件:

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();
  });
}