基本上,我有一个Web应用程序,它使用rxjs observables从Firebase检索数据。
这是我的代码,
initializeItems(){
this.travelList$ = this.plsdala.getTravelList()
.snapshotChanges()
.map(
changes => {
return changes.map(c=>({
key: c.payload.key, ...c.payload.val()
})).slice().reverse();//to reverse order
})
this.travelList$.subscribe(res => {
for(let i=0;i<res.length;i++){
this.ListOfitems.push (res[i].toAddress);
}
})
}
这是从构造函数中调用的。这里的问题是我无法检查它是否成功推送,如果尝试在控制台中打印,它将无法打印。为什么? 过滤需要推送的元素。继承人是过滤器的代码。但是当我在控制台中打印this.ListOfitems它是未定义的,我想知道为什么?首先初始化元素
getItems(ev: any) {
console.log("awdaw");
console.log(this.ListOfitems);
if (this.ListOfitems.length>1){
console.log("otin");
let val = ev.target.value;
if (val && val.trim() != '') {
this.ListOfitems = this.ListOfitems.filter((ListOfitems) => {
return (ListOfitems.toLowerCase().indexOf(val.toLowerCase()) > -1);
})
}
}
}
答案 0 :(得分:0)
当您要声明项目列表时,如果要推入数组,则需要先将其声明为空:
ListOfitems:string [] = [];