我有以下代码查找一个术语,然后从包含该字符串的数组中返回元素。但是,运行时出现以下错误: user.indexOf不是函数
在Observables上使用时,某些内置函数是否在过滤器中不起作用?
import { Injectable } from '@angular/core';
import { AngularFire } from 'angularfire2';
import { Person } from '../person';
import {Observable} from "rxjs";
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
@Injectable()
export class UserSearchService {
constructor(private af: AngularFire) { }
search(term: string): Observable<Person[]> {
return this.af.database.list('/users')
.map(users => {
return users.filter(user => {
return user.indexOf(term) > -1;
})
})
}
}
答案 0 :(得分:0)
user
的值不是字符串,而是一些其他对象(可能是基于import语句的类型Person
)。在indexOf
的相应字符串属性上调用user
。所以像这样:
...
return user.name.indexOf(term) > -1
...