Angular2 火力基地检索并分配变量
Angular2 firebase retrieve and assign vars
我正在构建非常简单的Angular2,它通过使用"firebase-angular2"npm模块与Firebase进行通信。我设法让它毫无问题地发布到 Firebase。
问题:
- 我无法使"项目"从"itemsarr"中获取值,出现错误:未捕获类型错误:无法设置未定义的属性"项目"。我尝试直接设置:this.items.push(records.val(((;,但我得到同样的错误。
- 在第 14 行,我看到数组中的所有项目,但每次更新时它都会在控制台数组中列出,所以如果我有 50 个项目,它将在控制台中列出 50 次。我知道我应该把它移到外面,但看看问题3。
- 在第 16 行,我在 itemsarr 中看不到任何东西,它是空的?!
法典:
1 var itemsarr = [];
2 @Component({
template:`
<li *ngFor="#item of items">
{{item.title}}
</li>
`
})
3 export class AppComponent {
4
5 items:Array<string>;
6
7 constructor() {
8
9
10 myFirebaseRef.on('child_added', function(childSnapshot, prevChildKey) {
11 childSnapshot.forEach(function(records) {
12 this.items = itemsarr.push(records.val());
13 });
14 console.log(itemsarr)
15 });
16 console.log(itemsarr)
17 }
18 }
19 }
解决方案(感谢蒂埃里(
我需要先将"=[]"设置为项目,然后转换为箭头函数,然后一切正常。不知道箭头功能,这是以这种方式连接的。
1
2 @Component({
template:`
<li *ngFor="#item of items">
{{item.title}}
</li>
`
})
3 export class AppComponent {
4
5 items:Array<string>=[];
6
7 constructor() {
8
9
10 myFirebaseRef.on('child_added', (childSnapshot, prevChildKey) => {
11 childSnapshot.forEach((records) => {
12 this.items.push(records.val());
13 });
14
15 });
16
17 }
18 }
19 }
您应该使用箭头函数来使用与组件本身对应的 this
关键字。
export class AppComponent {
items:Array<string>;
constructor() {
myFirebaseRef.on('child_added', (childSnapshot, prevChildKey) => {
childSnapshot.forEach((records) => {
this.items = itemsarr.push(records.val());
});
console.log(itemsarr)
});
console.log(itemsarr);
}
}
有关箭头函数的词汇 this 的更多提示,请参阅此链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions。
希望对您有所帮助,蒂埃里
使用
childSnapshot, prevChildKey = { ... }
records => { ... }
而不是
function(childSnapshot, prevChildKey) { ... }
function(records) { ... }
相关文章:
- 在运行时使用预先确定的对象分配变量
- 重新分配变量和重新定义之间的性能差异
- Javascript:在对象中分配变量时命名函数的好处
- Angularjs 控制器在服务方法返回之前从服务中分配变量
- 在 JavaScript 中的 for 循环中重新分配变量的目的是什么?
- 按设置的数量拆分字符串,并为拆分分配变量
- 嵌套的 if/else 语句讨论了分配变量.我已经这样做了,但它仍然不起作用
- 有没有理由不在 while 块声明中分配变量
- JSON - 访问 JSON 数组并分配变量
- Angular2 火力基地检索并分配变量
- 是否可以在运行依赖项之前在 gulp 任务中分配变量
- 在 JS 中的 for 循环中重新分配变量是什么意思
- 使用多种组合分配变量的最佳方法是什么
- 使用函数从字符串中分配变量名称
- 如何调用chrome.storage.sync.get并在页面加载时分配变量
- 在JavaScript中用冒号分配变量的语法有效吗
- 带有单选按钮的If语句不分配变量
- 正在从内部回调中分配变量
- Javascript在匿名函数中分配变量的值
- 使用jQuery分配变量类型时出错