无法设置null javascript错误的属性

时间:2017-06-18 15:33:47

标签: javascript angularjs typescript

我不明白为什么会出现此错误。有人可以请帮助。 我可以成功获取快照值。只有当我试图为this.user_data分配true / false时。我收到此错误:无法设置属性' user_data'为null

public user_data = false;


constructor(public afAuth: AngularFireAuth, public afDb: AngularFireDatabase)   {

  }


check_user_exists(number: string){

    const dats = firebase.database().ref('users');

     dats.orderByChild('number').equalTo(number).once("value", function(snapshot){



        if(snapshot.val() !== null){

            this.user_data = true;
            console.log(this.user_data);


        } else {

            this.user_data = false;
            console.log(this.user_data);

        }


    });



}

1 个答案:

答案 0 :(得分:2)

“这个”不是你认为的那样,在javascript中this与其他一些语言不同。

使您的代码有效:

 (snapshot) => { 
 // ...
});

而不是

function (snapshot) { ... }

我建议花点时间深入研究“this”是什么