2016-04-30 17 views
0

でタイプを複製しないでください、私はこのHTMLを持っている:アンギュラNGリピート:選択

{ 
    "properties": [ 
    { 
     "propertyId": "5702581e3678da025f79c83d", 
     "price": 493967, 
     "mainImg": "//loremflickr.com/668/501/house,facade", 
     "images": [ 
     { 
      "thumbUrl": "//loremflickr.com/372/279/property,interior", 
      "mainUrl": "//loremflickr.com/668/501/property,interior" 
     }, 
     { 
      "thumbUrl": "//loremflickr.com/372/279/property,interior", 
      "mainUrl": "//loremflickr.com/668/501/property,interior" 
     }, 
     { 
      "thumbUrl": "//loremflickr.com/372/279/property,interior", 
      "mainUrl": "//loremflickr.com/668/501/property,interior" 
     }, 
     { 
      "thumbUrl": "//loremflickr.com/372/279/property,interior", 
      "mainUrl": "//loremflickr.com/668/501/property,interior" 
     }, 
     { 
      "thumbUrl": "//loremflickr.com/372/279/property,interior", 
      "mainUrl": "//loremflickr.com/668/501/property,interior" 
     }, 
     { 
      "thumbUrl": "//loremflickr.com/372/279/property,interior", 
      "mainUrl": "//loremflickr.com/668/501/property,interior" 
     } 
     ], 
     "beds": 6, 
     "propertyType": "Terraced House", 
     "propertyAddress": "628 Arlington Avenue, Jardine, California, 2444", 
     "description": "Fugiat voluptate sunt deserunt sit tempor culpa. Officia ullamco do reprehenderit pariatur Lorem elit. Veniam pariatur commodo minim laborum eu velit mollit et mollit occaecat. Non consequat officia cupidatat proident enim ipsum nulla nostrud reprehenderit laboris culpa aute qui. Nulla adipisicing officia sunt incididunt cillum qui exercitation officia labore esse minim. Enim occaecat mollit amet laboris id excepteur elit mollit ex tempor exercitation duis.\r\n" 
    } 

を通してこのJSONからデータを取得

<div layout="row" layout-align="center center"> 
 
      <md-select placeholder="Property type" ng-model="id" md-on-open="loadProperties()" style="min-width: 200px; padding: 20px;"> 
 
       <md-option ng-value="id" ng-repeat="id in list" >{{id.propertyType}}</md-option> 
 
      </md-select> 
 
</div>

Iそれは大きすぎるのでこのjsonを減らしましたが、私は多くの異なったpropertyを持っています。異なったpropertyIDですが、同じPropertyTypeを持つこともあります。私がしようとしているのは、このような選択を作成することです:Select-img しかし、それは常にあなたが画像上で見ることができるように私に重複した値を与える。

これらの値を重複しないようにするにはどうすればよいですか?

ありがとう、ごめんなさい。

+0

テストのためにJSFiddleを投稿できますか? – conventi

答えて

1

uniqueフィルタを使用すると、重複を避けることができます。例えば、このような何か:

<div layout="row" layout-align="center center"> 
    <md-select placeholder="Property type" ng-model="id" md-on-open="loadProperties()" style="min-width: 200px; padding: 20px;"> 
     <md-option ng-value="id" ng-repeat="id in list | unique:'propertyType'" >{{id.propertyType}}</md-option> 
    </md-select> 
</div> 

はAngularJSはuniqueフィルタを内蔵していませんし、あなたがあなた自身を記述する必要があることを覚えておいてください。たとえば、次のようなものがあります。

app.filter('unique', function() { 
    return function(input, key) { 
     var unique = {}; 
     var uniqueList = []; 
     for(var i = 0; i < input.length; i++){ 
      if(typeof unique[input[i][key]] == "undefined"){ 
      unique[input[i][key]] = ""; 
      uniqueList.push(input[i]); 
      } 
     } 
     return uniqueList; 
    }; 
}); 
+0

私はしようとしましたが、私の選択は何も表示されていません。 – Sakramentas

+0

私は私の答えにいくつかの情報を追加しました。 – conventi

+0

これで完全に機能しました。どうもありがとうございました! – Sakramentas