如何使ng-重复筛选出重复的结果

我在运行一个简单的ng-repeat在一个JSON文件上,并希望获得类别名称。有大约100个对象,每个属于一个类别,但只有大约6个类别。

我目前的代码是:

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

输出是100个不同的选项,大部分是重复的。如何使用角度检查{{place.category}}已经存在了,而不是创建一个选项,如果它已经存在的话?

编辑:在我的javascript中,$scope.places = JSON data,只是为了澄清

如何使ng-重复筛选出重复的结果

繁星点点滴滴
浏览 589回答 3
3回答

慕村225694

你可以用独树一帜从AngularUI中筛选(源代码可在此找到):AngularUI唯一滤波器)并直接在ng-选项(或ng-重复)中使用。<select&nbsp;ng-model="orderProp"&nbsp;ng-options="place.category&nbsp;for&nbsp;place&nbsp;in&nbsp;places&nbsp;|&nbsp;unique:'category'"> &nbsp;&nbsp;&nbsp;&nbsp;<option&nbsp;value="0">Default</option> &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;unique&nbsp;options&nbsp;from&nbsp;the&nbsp;categories</select>

达令说

或者你可以写你自己的过滤器使用房车。app.filter('unique',&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;function&nbsp;(arr,&nbsp;field)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;_.uniq(arr,&nbsp;function(a)&nbsp;{&nbsp;return&nbsp;a[field];&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;};});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

AngularJS