gpt4 book ai didi

javascript - Firebase child_added `this` 不起作用

转载 作者:行者123 更新时间:2023-11-28 11:32:39 24 4
gpt4 key购买 nike

我正在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com