离子2:未定义不是对象

时间:2017-06-05 12:41:03

标签: ionic-framework ionic2

我有错误

  

undefined不是一个对象(评估' this.email =' 123'')

为什么会这样?

我的Ionic 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') ;
    });

}

1 个答案:

答案 0 :(得分:2)

使用箭头功能作为回调() => {}

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' ;

            }) ;