Javascript AngularJS使用Ng Repeat按属性筛选不起作用

Javascript AngularJS使用Ng Repeat按属性筛选不起作用,javascript,html,angularjs,filter,ng-repeat,Javascript,Html,Angularjs,Filter,Ng Repeat,我有一个ng repeat,它正在成功地重复数据。现在,我想按输入框中键入的属性筛选结果。然而,它要么根本不起作用,要么,如果我尝试各种方法,有时什么都不会显示出来。正如您所看到的,这是一项正在进行的工作,我已经尝试了许多不同的东西:因此我的代码不一致!请不要对此发表评论,因为这不是建设性的 <tr ng-if="vm.detail == true"> <th><input type="text" n

我有一个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>

{{plan.TrusteeCustNum}
{{plan.CustomerNumber}
{{plan.ContractNumber}
{{plan.PlanCode}
{{plan.PlanStatusDate}日期:'yyyy-MM-dd'}
{{plan.PlanStatus}
{{plan.planeEffectiveDate}日期:'yyyy-MM-dd'}

我如何获得任何筛选器,以按我使用的属性筛选结果,并按这些属性对结果进行排序?

您的$scope中是否存在vm.PlanCode?您是否尝试过将其替换为一个简单的名称,如“planCode”,并添加$scope.planCode='';到你的$scope

只是想看看这是否会有所不同


查看您的型号/范围会很有帮助。

过滤器:过滤器。PlanCode是我需要按PlanCode进行过滤的代码。此外,我必须将ng模型更改为filter.PlanCode

如果要按属性过滤
PlanCode
,则过滤器应为具有指定属性的对象:

ng-repeat="plan in vm.PlanCodeInfo | filter:filterObj"
其中,在HTML中,您使用相应的
ngModel
定义过滤器输入。当然,您可以使用多个属性进行筛选。以下是
PlanCode
plancstatusdate
过滤器的示例:

<input type="text" ng-model="filterObj.PlanCode">
<input type="text" ng-model="filterObj.PlanStatusDate">


是的,我试过了。另外,我知道planCode在我的范围内,因为我调试了它并查看了$scope中的内容。我想知道,如果一个过滤器不能应用到一行?它必须在标签上吗?我刚刚输入了这个,我第一件事就是尝试了g-repeat=“vm.PlanCodeInfo中的计划| filter:filter”。然而,这不会让任何东西显示出来。我只是用这句话绕过了它: