我读过一些有角度的文档,也看过一些例子,但我仍然不清楚如何才能像我所需要的那样过滤。
我所拥有的是一个API,它将检索一个具有开放、关闭、挂起、紧急状态的记录列表。我的想法是,我会把所有的记录拿回来,然后把它们发到页面上。我还得到了这些状态的列表,因此它们被填充在下拉列表中。当页面加载时,我想先显示Open,然后在用户从下拉列表中选择一个记录时切换到不同的记录状态。
因此,我了解如何对this.filteredArray = filterFilter(this.array, {status:'Open'});这样的过滤项数组进行签名,但是如果我在ng-repeat中使用它,其他记录将不可用,因为该数组只有“打开”记录,而没有else....correct?
如果我使用一个包含所有记录的数组(目前大约为415条记录),那么它将首先显示所有记录,并且在有人从下拉列表中选择之前不执行任何筛选。
我试过并以<span ng-repeat="vm in ctrl.allRecordsArray | filter={status:'Open'}">{{vm.name}}</span>为例,但这似乎不适合我。即使是这样,我也不知道如何将其与下拉列表联系起来,以更改数据。
我肯定有人做过类似的事。我只是找不到任何例子。
更新
在调试器中,我可以看到从数据库调用(428条记录)返回的记录。我还可以看到一个名为“StatusName”的属性,在这个屏幕快照中,您可以看到它写着“关闭”。我过滤关闭进行测试,因为大多数初始记录都处于“关闭”状态。

如果我在不进行任何过滤的情况下使用下面的内容,那么我就可以在页面上填充记录。
<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>发布于 2017-01-28 06:06:18
就我对您问题的理解而言,您应该使用dropdownlist model in your filtering而不是常量名称。
发自:
<span ng-repeat="vm in ctrl.allRecordsArray | filter={status:'Open'}">致:
<span ng-repeat="vm in ctrl.allRecordsArray | filter={status: your_dropdownlist_model}">这样,过滤将基于您的your_dropdownlist_model值。无论何时更改下拉列表值,都会根据下拉列表中更改的值自动对其进行筛选。
https://stackoverflow.com/questions/41906839
复制相似问题