我想为自动完成素材创建过滤器。
我的模特:
export class Country {
country_id: number;
name: string;
}
调用webmethod ws
this.ws.AllCountry().subscribe(
countryes => {
this.countryes = countryes.map((country) => {
return new Country(country);
});
}
);
创建此过滤器,但不起作用:
filterStates(val: string) {
if (val) {
let filterValue = val.toLowerCase();//toLowerCase does not exist on type Country.
return this.countryes.filter(name => name.toLowerCase().startsWith(filterValue));
}
return this.countryes;
}
你能告诉我任何解决方案吗?
谢谢
答案 0 :(得分:6)
我认为您的错误发生在过滤器行上,因为您在toLowerCase
对象本身上调用了Country
。试试这个:
filterStates(val: string) {
if (val) {
let filterValue = val.toLowerCase();
// the below line is the change
return this.countryes.filter(country => country.name.toLowerCase().startsWith(filterValue));
}
return this.countryes;
}
答案 1 :(得分:2)
filterStates(val: string) {
if (val) {
let filterValue = val.toLowerCase();//toLowerCase does not exist on type Country.
return this.countryes.filter(item => item.name.toLowerCase().startsWith(filterValue));
}
return this.countryes;
}
您使用的是国家/地区对象而不是名称属性。
答案 2 :(得分:0)
如果您在angular 2中使用jquery,请使用toString函数
$('#search').val().toString().toLowerCase()