我正在使用 Angular2、ionic2 和 firebase
开发聊天应用程序。
为了获得聊天,我尝试了以下方法
Controller 代码:
displayAllMessage() {
let myDataRef = new Firebase("firbaseurl");
myDataRef.on('child_added', function(snapshot) {
this.message = snapshot.val();
console.log(this.message);
});
}
查看代码:
<h1> {{message.text}} </h1>
但这里的问题是 - 如果我使用 this.message
它会抛出错误,说 this.message
未定义,如果我使用 var message
而不是 this
那么它就可以正常工作。如果我使用 var message
那么我无法在 View 中显示它。
提前谢谢您。
最佳答案
使用箭头函数 () => { ... }
而不是 function () { ... }
来保留 this 的范围。
displayAllMessage() {
let myDataRef = new Firebase("firbaseurl");
myDataRef.on('child_added', (snapshot) => {
this.message = snapshot.val();
console.log(this.message);
});
}
另请参阅https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions/Arrow_functions
displayAllMessage() {
let myDataRef = new Firebase("firbaseurl");
myDataRef.on('child_added', function (snapshot) {
this.message = snapshot.val();
console.log(this.message);
}.bind(this));
}
关于javascript - Firebase child_added `this` 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36571684/