Json 根据搜索词返回公司列表
我正在创建一个模拟api,它涉及查询json文件(包含公司对象)以获取特定名称,但它会不断返回null而不是匹配项。我怎样才能解决这个问题?我是根据这个来做这项工作的 代码 companies.jsonJson 根据搜索词返回公司列表,json,angular,Json,Angular,我正在创建一个模拟api,它涉及查询json文件(包含公司对象)以获取特定名称,但它会不断返回null而不是匹配项。我怎样才能解决这个问题?我是根据这个来做这项工作的 代码 companies.json [ { "name": "one" }, { "name": "two" }, { "name": "three" }, { "name": "four" }, { "name": "five" } ] 不使用re
[
{
"name": "one"
},
{
"name": "two"
},
{
"name": "three"
},
{
"name": "four"
},
{
"name": "five"
}
]
不使用return,您可以直接赋值
this.companies = data.filter(t=>t.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
过滤器不会修改它所处理的变量,所以您必须将其重新分配给desire变量
filterCompanies(searchTerm) {
this.http.get('assets/data/companies.json').map(res => res).subscribe(data => {
this.companies = data.filter((company) => {
return company.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
});
});
}
您可以使用includes检查名称是否包含搜索字符串
this.companies = [];
this.companies = data.filter((company) => company.name.includes('searchtext'));
或
过滤后的公司现在包含在“this.companies”中,如果您想使用包含“companys”成员的组件中的公司,则无需从filterCompanies功能返回该公司谢谢。我开始犯错误了。1) 类型“Object”上不存在属性“filter”,2)t.nameexOf不是functiondata是数组还是对象?data是对象数组不应该抛出错误,然后检查并告知我仍然收到错误:[app scripts][06:33:23]类型脚本:src/providers/dummy-api/dummy-api.ts,第14行[app scripts]类型“Object”上不存在属性“filter”。[app scripts]L13:this.http.get('assets/data/companys.json').map(res=>res).subscribe(data=>{[app scripts]L14:this.companys=data.filter(t=>t.name.toLowerCase().indexOf(searchTerm.toLowerCase())>-1);[app scripts]L15:});答案不一样吗?变通办法?不确定。我相信如果没有polyfills,Angular应用程序本身将无法在IE中工作
this.companies = [];
this.companies = data.filter((company) => company.name.includes('searchtext'));
this.companies = data.filter((company) => company.name.toLowerCase().includes('searchtext'.toLowerCase()));