メンバーのための簡単なフィルタ検索機能を記述しています。まだ私はちょうど設定された任意のフィルタリングがなかったので要素がすべてアウレリアクラスのすべての配列から削除されています
getMembers() {
return this.userService.getMembers(this.authUser.selectedCompany).then(data => {
if (data.statusCode === 200) {
this.members = data.content.users.sort(function (a, b) {
if (a.firstName < b.firstName) return -1;
if (a.firstName > b.firstName) return 1;
return 0;
});
this.filteredMembers = this.members;
}
}).catch(err => {
console.log('error getting members:', err.response);
});
}
:私は1つが他のすべてのメンバーのリストは、メンバーのフィルタリングされたリストになりますどのfilteredMembers
であるmembers
ある2つのアレイのプロパティを持っていますfilteredMembers
をmembers
と等しくする。ここまでは順調ですね。今
私はメンバーが私が検索ボックスに入力する内容に応じて、フィルタkeyUpイベントで入力された検索することができます:
<input type="search" value.bind="searchQuery" keyup.delegate="filterMembers()">
と機能は:
filterMembers() {
if(!this.searchQuery) {
this.filteredMembers = this.members;
return;
}
let filteredCount = this.filteredMembers.length;
for (var i = 0; i < filteredCount; i++) {
if (this.filteredMembers[i].lastName.toLowerCase().indexOf(this.searchQuery.toLowerCase()) == -1) {
this.filteredMembers.splice(i, 1);
}
}
}
だから、あなたが見ることができます関数内で検索ボックスのユーザータイプがメンバーの姓の中に見つからない場合は、filteredMembers
配列からメンバーを削除します。検索クエリが空の場合、私はfilteredMembers
をmembers
と同じにします。ここで
Aurelia
にかかわる問題であるかもしれないいくつかの理由のために実行しているか、人為的なミスかもしれませんが、私は
filteredMembers
から要素を削除すると、それはまた
members
配列から削除されている問題です。私はを
members
に等しく設定しないように、最初の
getMembers()
の機能のすべての種類を試しました。
あなたはそれに私を打つこの
変更。私の電話での入力は遅すぎます:p – mgiesa
@mgiesa私はあなたのフィルタの選択肢が好きですが、私は言う必要があります。 – Rodrigo