2016-12-09 13 views
2

私はIonic2アプリを開発しています。私は約束を使っています。活字体のクラスでは、私はこの方法約束のヌルオブジェクトAngular2

tapOnRegistrati() { 
this.authService.userRegistration(this.email,this.password).then(function(user){ 

    this.user = this.af.database.object('/users/' + user.uid); 
    this.user.set({ name: this.name, lastname: this.lastname}); 


}).catch(function(error: any) { 

}); 

} 

を作成しましたが、thenブロックが実行されたときにthisの参照がnullあるので、私は私のtypescriptですクラスの任意のオブジェクト/属性を使用することはできません。どうして?

答えて

1

あなたは

.then(function(user){ 
    this.user = this.af.database.object('/users/' + user.uid); 
    this.user.set({ name: this.name, lastname: this.lastname});  
}) 

thisのようなあなたのコールバック関数を使用している場合ので、コールバック内の関数オブジェクトを参照します。ページを参照する場合は、次のように入力してください:

then((user)=>{ 
    this.user = this.af.database.object('/users/' + user.uid); 
    this.user.set({ name: this.name, lastname: this.lastname}); 

})