首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不太懂角度控制器的过滤?

我不太懂角度控制器的过滤?
EN

Stack Overflow用户
提问于 2017-01-28 05:58:00
回答 2查看 59关注 0票数 0

我读过一些有角度的文档,也看过一些例子,但我仍然不清楚如何才能像我所需要的那样过滤。

我所拥有的是一个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”的属性,在这个屏幕快照中,您可以看到它写着“关闭”。我过滤关闭进行测试,因为大多数初始记录都处于“关闭”状态。

如果我在不进行任何过滤的情况下使用下面的内容,那么我就可以在页面上填充记录。

代码语言:javascript
复制
<tr ng-repeat="call in vm.calls">

如果我使用下面的内容来过滤数据,就不会将任何内容写入页面。

代码语言:javascript
复制
<tr ng-repeat="call in vm.calls | filter={StatusName: 'Closed'}">

看起来代码是正确的,所以我不知道为什么它不工作。它几乎就像对象属性值中有某种空格或字符,导致它不能正确匹配和/或筛选。

我还不确定这是否涉及到这个问题,但以防万一,这是我的下拉列表代码。

代码语言:javascript
复制
    <select id="categoryId"
        class="form-control"
        ng-model="vm.selectedCategory"
        ng-options="item.StatusName for item in vm.callStatus track by item.Id">
</select>
EN

Stack Overflow用户

发布于 2017-01-28 06:06:18

就我对您问题的理解而言,您应该使用dropdownlist model in your filtering而不是常量名称。

发自:

代码语言:javascript
复制
<span ng-repeat="vm in ctrl.allRecordsArray | filter={status:'Open'}">

致:

代码语言:javascript
复制
<span ng-repeat="vm in ctrl.allRecordsArray | filter={status: your_dropdownlist_model}">

这样,过滤将基于您的your_dropdownlist_model值。无论何时更改下拉列表值,都会根据下拉列表中更改的值自动对其进行筛选。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41906839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档