我不知道为什么这段代码无法运行,但另一种方法是可以的
this.usersRef = this.database.ref('/doctors/' + firebase.auth().currentUser.uid + '/userList');
this.UsersRef.on('value', function(snapshot){
console.log(snapshot.val());
snapshot.forEach(function (child) {
// console.log(child.key);
var val = child.val();
this.displayUserInfo(child.key, val.email, val.firstname, val.lastname);
});
});
它始终显示“无法读取未定义的属性'displayUserInfo',
这种方式还可以:
var setUsersInfo = function (data) {
var val = data.val();
this.displayUserInfo(data.key, val.email, val.firstname, val.lastname);
}.bind(this);
this.usersRef.limitToLast(12).on('child_added', setUsersInfo);
this.usersRef.limitToLast(12).on('child_changed', setUsersInfo);
我认为关键是在javascript中绑定(this),但是我在第一种方式尝试了.bind(this),它无法工作。
有人可以给出一些提示吗?谢谢