离子2:未定义不是对象



我有一个错误

未定义不是对象(评估'this.email ='123''(

为什么会发生这种情况?

控制器中的离子2代码:

email:string = '' ;
facebook_login() {
    this.fb.login(['public_profile', 'email'])
        .then((res: FacebookLoginResponse) => {
            this.fb.api("/me?fields=name,email", []).then(function(user) {
                this.email = '123' ;
            }) ;
    }).catch(e => {
        alert('Error login') ;
    });
}

使用箭头函数作为回调() => {}

this将指向函数对象,而不是示例中的类。

this.fb.api("/me?fields=name,email", []).then(function(user) {
                this.email = '123' ;
            }) ;

将上述更改为:

this.fb.api("/me?fields=name,email", []).then((user) => {
                this.email = '123' ;
            }) ;

相关内容

  • 没有找到相关文章