1. ホーム
  2. angularjs

[解決済み] ng-repeatで重複した結果をフィルタリングする方法

2022-07-14 06:20:12

質問

私は単純な ng-repeat を実行しており、カテゴリ名を取得したいと思っています。約100のオブジェクトがあり、それぞれがカテゴリに属しています。しかし、カテゴリは約6つしかありません。

私の現在のコードはこれです。

<select ng-model="orderProp" >
  <option ng-repeat="place in places" value="{{place.category}}">{{place.category}}</option>
</select>

出力されるのは100種類のオプションで、ほとんどが重複しています。Angularで {{place.category}} がすでに存在するかどうかをチェックし、すでに存在する場合はオプションを作成しないようにするには、Angularをどのように使用すればよいですか?

edit: 私のjavascriptでは $scope.places = JSON data という記述がありますが、明確にするために

どのように解決するのですか?

あなたは ユニーク フィルタを使うことができます(ソースコードはこちら。 AngularUIのユニークなフィルター を作成し、ng-options (または ng-repeat) で直接使用します。)

<select ng-model="orderProp" ng-options="place.category for place in places | unique:'category'">
    <option value="0">Default</option>
    // unique options from the categories
</select>