私は、次のようなオブジェクトがあります。exisitingプロパティから新しい配列を作成します
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"
}
など
は私がアプリを作ってるんだし、あなたが検索できるので、私は、それに検索要素を追加したいです異なるチームメンバーのために。私はすべてのチームメンバーの中からすべてのプロパティ '名前'を初期化したいと思っています。これは、フィルタリングする必要がある唯一のものです。
私は2つの方法を考えてきました:
- がそれにプロジェクトの名前のみ> teammembers で新しい配列を作成します。
- 名前を初期化するだけです。しかし、私はこれで成功していません。
正しい選択をして成功する方法を教えてもらえますか? 新しいアレイを既存のものから外す方法は今でもありません。私はこのような何かを考えていた:
var teamMembers = project.teammembers.name();
をしかし、私はちょうどオブジェクトのうち、nameプロパティを使用することができれば離れて、そのオプションから、それが最善でしょう。
私は、次のしている私のtypescriptファイルで
<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>
(私は角度イオン2月2日を使用しています)ここまでだった:
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);
})
}
}
しかし、それは動作しません。私はエラーが表示されます:未定義のプロパティ 'フィルタ'を読み取ることができません。
私を助けてくれる人がいますか?前もって感謝します。
お返事ありがとうございます。今すぐ新しい配列を作る方法:-)私はすぐに試してみたいが、まず新しい配列を作らずに試してみたい –
@ Thalaivarの答えはあなたの問題を解決するはずです。間違った要素をフィルタリングしていました。彼は正しい要素をフィルタリングしています(チームメンバー)。 –