我有一个ng-repeat,它成功地重复了数据。现在,我想通过输入框中输入的属性来过滤结果。然而,它要么根本不起作用,要么如果我尝试各种各样的东西,有时候什么都不会显示出来。正如你所看到的那样,这项工作正在进行中,我尝试了很多不同的东西:因此我的代码不一致!请不要对此发表评论,因为它不具有建设性!
<tr ng-if="vm.detail == true">
<th><input type="text" ng-model="filter.TrusteeCustNum" /></th>
<th><input type="text" ng-model="filter.MchNumber" maxlength="4" class="input- sm form-control" /></th>
<th><input type="text" ng-model="filter.ContractNumber" class="input-sm form-control" /></th>
<th><input type="text" ng-model="vm.PlanCode" maxlength="10" class="input-sm form-control" /></th>
<th><input type="date" ng-model="filter.PlanStatusDate" /></th>
<th><input type="text" ng-model="filter.PlanStatus" /></th>
<th><input type="date" ng-model="filter.PlanEffectiveDate" /></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="plan in vm.PlanCodeInfo | filter: vm.PlanCode | orderBy: vm.PlanCode" ng-if='vm.detail == true && vm.detailPlanCode'>
<td> {{plan.TrusteeCustNum}}</td>
<td>{{plan.CustomerNumber}}</td>
<td>{{plan.ContractNumber}}</td>
<td>{{plan.PlanCode }}</td>
<td>{{plan.PlanStatusDate | date: 'yyyy-MM-dd'}}</td>
<td>{{plan.PlanStatus}}</td>
<td> {{plan.PlanEffectiveDate | date: 'yyyy-MM-dd'}}</td>
<td><a href="">Rates</a></td>
<td><a href="">State Availability</a></td>
</tr>
如何通过我使用的属性过滤结果来过滤结果?并按照这些属性对它们进行排序?
答案 0 :(得分:3)
如果要按属性PlanCode
进行过滤,则过滤器应该是具有指定属性的对象:
ng-repeat="plan in vm.PlanCodeInfo | filter:filterObj"
在HTML中,您可以使用相应的ngModel
定义过滤器输入。当然,您可以使用多个属性进行筛选。以下是PlanCode
和PlanStatusDate
过滤器的示例:
<input type="text" ng-model="filterObj.PlanCode">
<input type="text" ng-model="filterObj.PlanStatusDate">
答案 1 :(得分:0)
你的$ scope中是否存在vm.PlanCode?您是否尝试使用简单的名称替换它,例如&#34; planCode&#34;并添加$ scope.planCode =&#39;&#39 ;;你的$ scope?
看看它是否有所作为?
查看您的型号/范围会很有帮助。
答案 2 :(得分:0)
filter:filter.PlanCode是我需要通过planCode过滤的代码。此外,我必须将ng-model更改为filter.PlanCode。