2017-05-30 10 views
1

私は、入力フィールドがあります。AngularJSのng-model値をフィルタリングするフィルタを作成する方法は?

items: [ 
    { 
    repo_status: null, 
    cyberridge_loan_number: "FH00-0012-0003-0012", 
    repo_id: 18, 
    cr_loan_status: "CLOSED", 
    eff_days_delinquent: null, 
    principal_balance: null, 
    preemptive_charge_off_balance: 0, 
    total_final_charge_off_balance: 0 
    }, 
    ... 
] 
:私は次のようにオブジェクトの値を比較するフィルタを作成したい

$scope.defaultValue = ""; 

:それは空の文字列である私のコントローラで

<input type="text" ng-model="defaultValue"> 

例:repo_id> 18? (このNG-repeatがすべて同じ形式APIのであるので、私は{キー、値}のペアを使用)

<li ng-repeat="(key, value) in data.items[0]">{{value}}</li> 

をしかし(のようなロジック・フィルタを作成する方法:私はNGリピートを作成しましたrepo_id> 18?)とng-repeatに適用されますか?

ありがとうございました!あなたはこのようなカスタムフィルタを作成することができます

答えて

2

$scope.greaterThan = function(prop, val) { 
     return function(item) { 
     if (item[prop] > val) return true; 
     } 
    } 

DEMO

var app = angular.module('myApp', []) 
 

 
app.controller('MyController', function($scope) { 
 
    $scope.defaultValue = 0; 
 
    
 
    $scope.items = [{ 
 
     repo_status: null, 
 
     cyberridge_loan_number: "FH00-0012-0003-0012", 
 
     repo_id: 18, 
 
     cr_loan_status: "CLOSED", 
 
     eff_days_delinquent: null, 
 
     principal_balance: null, 
 
     preemptive_charge_off_balance: 0, 
 
     total_final_charge_off_balance: 0 
 
    }, 
 
    { 
 
     repo_status: null, 
 
     cyberridge_loan_number: "FH00-0012-0003-0012", 
 
     repo_id: 34, 
 
     cr_loan_status: "OPEN", 
 
     eff_days_delinquent: null, 
 
     principal_balance: null, 
 
     preemptive_charge_off_balance: 0, 
 
     total_final_charge_off_balance: 0 
 
    }]; 
 
    
 
    $scope.greaterThan = function(prop, val) { 
 
     return function(item) { 
 
     if (item[prop] > val) return true; 
 
     } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="MyController"> 
 
    <input type="text" ng-model="defaultValue"> 
 
    <ul> 
 
    <li ng-repeat="item in items | filter: greaterThan('repo_id', defaultValue)">   {{item}} 
 
    </li> 
 
    </ul> 
 
</div>

+0

はありがとうございました! –

関連する問題