嗨,我遇到了一个错误
以及来自 Firebase 的警告
当我尝试从 Firebase 获取数据时出现此错误,请任何人帮助解决此问题。
提前致谢!
这是我的代码
ngAfterContentInit() {
this.singlehotel = {};
firebase.database().ref('Rests/').once('value', function(snapshot) {
console.log('value from db' + JSON.stringify(snapshot.val()));
var getrest = snapshot.val();
console.log(JSON.stringify(getrest));
for (var key in getrest) {
if(restemail == getrest[key].email){
console.log(key + ':' + JSON.stringify(getrest[key]));
this.singlehotel = getrest[key]; //getting error here when using this
}
}
});
};
索引.html
<script src="https://www.gstatic.com/firebasejs/3.5.1/firebase.js"></script>
<script>
// Initialize Firebase
// for security reasons i am hiding my keys
var config = {
apiKey: "***",
authDomain: "***",
databaseURL: "***",
storageBucket: "**",
messagingSenderId: "**"
};
firebase.initializeApp(config);
</script>
<body>
<my-app>Loading...</my-app>
</body>
看法
<div class="container" style="background-color: #f2f2f2;">
<h1><b>Hotel Name :{{singlehotel.displayName}}</b></h1>
</div>
两者都属于同一个组件。当 View 加载时,每次都会调用 ngAfterContentInit() 函数,这就是函数触发的方式,但我无法在范围内存储我的意思是这个。请帮助我
最佳答案
如果您使用 this
, function() {... }
不会指向当前类实例。改用箭头函数
firebase.database().ref('Rests/').once('value', (snapshot) => {
另见 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions
关于angular - 使用此功能时,无法在 angular-2 中设置 null 属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40377018/