我有一个可观察对象的列表,我试图迭代以将列表对象属性与局部变量进行比较.
我可以在模板中循环遍历列表中的对象,但无法在组件逻辑中看到如何操作.
如何在模板外执行此操作?
这是我到目前为止最接近工作迭代器的方法.
constructor(af: AngularFire) { this.competitors = af.database.list('/competitors'); } this.competitors.forEach(competitor) { console.log(competitor); }
对不起如果这是一个构造不好的问题,我对Angular2和Firebase还是一个新手.
解决方法
你正在使用Observables而不是普通的集合.这意味着您必须使用Observable原语并对此进行简单循环.竞争对手将无法工作.
这个:
this.competitors.subscribe(competitor => console.log(competitor));
顺便说一下,有一个命名约定,最后用$命名Observables,所以它看起来如下:
this.competitors$= af.database.list('/competitors');
和:
this.competitors$.subscribe(competitor => console.log(competitor));
这将记录整个竞争对手.如果要迭代元素,请执行以下操作:
this.competitors.subscribe( competitors => { competitors.map(competitor => console.log(competitor) ) });