私はいくつかのAngularドキュメントを読んでいくつかの例を見てきましたが、私が必要としているようにフィルタリングする方法はまだ分かりません。うまくいけば、いくつか私のためにそれをクリアするのに役立つことができます。Angularコントローラでのフィルタリングについてよく分かりませんか?
私が持っているのは、Open、Closed、Pending、Urgentなどのステータスを持つレコードのリストを取得するAPIです。私は、すべてのレコードを元に戻してページに送付することを考えています。私はまた、それらのステータスのリストを取得するので、ドロップダウンリストに入力されます。ページがロードされると、最初に開くレコードを表示してから、ユーザーがドロップダウンリストからレコードを選択すると、別のレコードステータスに切り替わります。
this.filteredArray = filterFilter(this.array, {status:'Open'});
のようなフィルタリングされたアイテムの配列にどのように署名することができますか?ng-repeat
でそれを使用すると、その配列には '公開'レコードのみがあるため、他のレコードは利用できません。 ...正しい?
現在、約415レコードのレコードをすべて含む配列を使用すると、最初にすべてのレコードが表示され、誰かがドロップダウンリストから選択するまで、フィルタリングは行われません。
私は試してみて<span ng-repeat="vm in ctrl.allRecordsArray | filter={status:'Open'}">{{vm.name}}</span>
の例を試しましたが、それは私にとってはうまくいかなかったようです。たとえそれがあったとしても、データを変更するためのドロップダウンリストにどのように結びつけるのか分かりません。
誰かがこれに類似したことをしたと確信しています。私は例を見つけることができません。デバッガで
UPDATE
、私は私のデータベースコール(428の記録)から返されたレコードを見ることができます。私は "StatusName"という名前のプロパティを見ることができ、このスクリーンショットでは "Closed"と表示されます。最初のレコードのほとんどが「閉鎖」ステータスになっているため、私はテスト用にClosedをフィルタリングしています。
フィルタリングを行わずに次のコードを使用すると、ページにレコードが表示されます。
<tr ng-repeat="call in vm.calls">
データをフィルタリングしようとすると、次のような操作を行っても、ページに書き込まれるものはありません。
<tr ng-repeat="call in vm.calls | filter={StatusName: 'Closed'}">
コードが正しいので、私はそれが動作しない理由として失われてるように見えます。それは、オブジェクトのプロパティ値に何らかの種類のスペースや文字があり、正しく一致したりフィルタリングしたりしないようなものです。
私はこれがまだ問題になっているのかどうかは確かではありませんが、その場合はドロップダウンリストのコードがあります。限り私の理解として、あなたの質問から
<select id="categoryId"
class="form-control"
ng-model="vm.selectedCategory"
ng-options="item.StatusName for item in vm.callStatus track by item.Id">
</select>
より多くの意味を作るために始めています。私はこれを試してみると、私はそれを働かせることができるかどうかを見ていきます。 – Caverman
これがなぜ機能していないのか、私は困惑しています。私の何かが欠落しているかどうかを確認するために私のメインポストの更新を見てください。 – Caverman
ドロップダウンリストモデルがvm.statusNameでバインドされている場合、ng-repeatフィルタリングは、ctrl.allRecordsArray | filter = {status:vm.statusName} "> ' –