2017-09-05 11 views
1

私は配列を持ち、この配列にはいくつかのIdが含まれています。 私はIdに従って私の結果をフィルタリングしたいと思います。配列の値に応じたAngularJSフィルタフィールド

例については、下記のコードスニペットをご覧ください。 'ids'配列に 'StatusId'のレコードを表示するにはどうすればよいですか? 私の例によると、私はリストする:

AAA BBB CCC

<html> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<script> 
 
    angular.module('myApp', []).controller('ctrl', function ($scope) { 
 

 
     $scope.ids = [{ 
 
      "id": 1 
 
     }, { 
 
      "id": 2 
 
     }, { 
 
      "id": 3 
 
     }] 
 

 
     $scope.records = [ 
 
      { 
 
       "Name": "AAA", 
 
       "StatusId": 1 
 
      }, 
 
      { 
 
       "Name": "BBB", 
 
       "StatusId": 1 
 
      }, 
 
      { 
 
       "Name": "CCC", 
 
       "StatusId": 2 
 
      }, 
 
      { 
 
       "Name": "DDD", 
 
       "StatusId": 4 
 
      }, 
 
      { 
 
       "Name": "EEE", 
 
       "StatusId": 4 
 
      }, 
 
] 
 

 

 
    }); 
 
</script> 
 

 

 
<body> 
 
    <div id="idctrl" ng-app="myApp" ng-controller="ctrl"> 
 
     <ul> 
 
      <li ng-repeat="x in records"> 
 
       {{ x.Name }} 
 
      </li> 
 
     </ul> 
 
    </div> 
 
</body> 
 

 
</html>

+0

カスタムフィルタを作成する必要があります。この答えを見てください。 [https://stackoverflow.com/a/15869436/5358917](https://stackoverflow.com/a/15869436/5358917) – KKK

答えて

1

あなたはjavascript 'フィルタ' 機能を使用することができます

records = $scope.records.filter((record) => { 
    return record.StatusId === 1 
}); 

これは、Sを含むレコードのみを含む新しい配列を返しますtatusId of 1。これらの配列を使用して、希望のレコードを表示できます。

+0

申し訳ありませんが明確ではありません。あなたの関数を自分のコードに追加しましたが、結果は変わりません。 – Grcn

+0

@Grcn配列には、_function_を入力として受け取り、trueまたはfalseを返すフィルタ関数があります。提供された関数を通して配列の各要素を渡し、trueを返す要素の_new_配列を返します。 [ここで読む](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)。 –

+0

矢印関数を扱っていて_just_関数が値を返す場合は、 '(record)=> record.StatusId === 1'(または' record => record.StatusId === 1'、正確に1つのパラメータがあるので) –

関連する問題