indexOf对我不起作用。离子性

时间:2018-07-11 17:01:04

标签: ionic-framework indexof searchbar

所以对我来说,使用字符串处理的indexOf函数无法正常工作。我得到了“ Betreiber”类型的对象列表。就像您在屏幕截图中看到的那样,我可以正确获取数据。但是我不能用indexOf过滤,我不明白为什么?

   getFiltList(searchquery: string): Observable<Betreiber[]>{
    return Observable.create( observable => {
        this.fbProvider.getListObs().subscribe( allItems => {
            console.log("Query: " + searchquery);
            console.log(allItems);

            let filteredList = allItems.filter(b => b.name.indexOf(searchquery) > -1); <!-- stop doing work here.. !-->

            console.log(filteredList);
            observable.next(filteredList);
            observable.complete();
        });
    });
}

Screenshot 1: Console log with query input="Test123"

如果我将其更改为let filteredList = allItems.filter(b => b.name === searchquery);

搜索类型为“ Betreiber”的对象的确切名称有效 Console log with query: Test123 after line change

希望可以为您提供帮助。.还尝试使用.toLowerCase()作为搜索查询和课程名称:)

1 个答案:

答案 0 :(得分:0)

似乎您的数据数组的最后一项{anschrift:{...},bankverbindung:{...},id:..., name2:...}没有属性name,而是name2

因此,b.name.indexOf(searchquery)无法执行,并且会调用运行时错误,因为b.nameundefined,而b.name === searchquery可以执行。