【发布时间】:2016-07-06 10:51:15
【问题描述】:
我有一个这样的对象:
export var PROJECT: any = {
id: "1",
name: "Hunkemoller",
teammembers: [
{
id: 1,
name: "Sarah Johnson",
firstname: "Sarah",
role: "Manager"
},
{
id: 2,
name: "Christian Johnson",
firstname: "Christian",
role: "Employee"
}
等等
我正在制作一个应用程序,我想在其中添加一个搜索元素,以便您搜索不同的团队成员。我想初始化每个团队成员的所有属性“名称”。这是唯一需要过滤的东西。
我想到了两种方法:
- 创建一个仅包含项目名称的新数组 > teammembers 在里面。
- 只需初始化名称。但我没有成功。
你能帮我做出正确的选择并向我解释我如何才能成功吗? 我什至现在都不知道如何从现有的数组中制作一个新的数组。我在想这样的事情:
var teamMembers = project.teammembers.name();
但除了这个选项,最好只使用对象外的 name 属性。
我走了这么远(我正在使用 Ionic 2 / Angular 2)
<ion-searchbar (ionInput)="getTeammembers($event)" [(ngModel)]="searchQuery"></ion-searchbar>
<ion-list>
<ion-item *ngFor="let teammember of project.teammembers">
{{ teammember.name }}
</ion-item>
</ion-list>
在我的打字稿文件中,我有以下内容:
initializeTeammembers() {
this.project.teammembers;
}
getTeammembers(ev) {
// reset teammembers back to all of the teammembers
this.initializeTeammembers();
// set val to the value of the searcbar
let val = ev.target.value;
// if the value is empty string, don't filter teammembers
if (val && val.trim() != '') {
this.project.teammembers.name = this.project.teammembers.name.filter((teammember) => {
return (teammember.toLowerCase().indexOf(val.toLowerCase()) > -1);
})
}
}
但它不起作用。我收到错误:无法读取未定义的属性“过滤器”。
有没有人可以帮助我?提前致谢。
【问题讨论】:
标签: javascript arrays angularjs object ionic-framework