假设我有一个类似于AngularJS ngOptions文档中的数组
[
{name:'black', shade:'dark'},
{name:'white', shade:'light', notAnOption: true},
{name:'red', shade:'dark'},
{name:'blue', shade:'dark', notAnOption: true},
{name:'yellow', shade:'light', notAnOption: false}
];
...使用
<select ng-model="myColor" ng-options="color.name group by color.shade for color in colors">
产生......
dark
black
red
blue
light
white
yellow
我想通过暗和光来过滤值,所以我想只是...
dark
light
是否可以使用ng-options来实现这一目标?
答案 0 :(得分:0)
使用像这样的过滤器
<select ng-model="myColor" ng-options="color.shade for color in Colors | unique:'shade'"></select>
使用&#39; unique&#39;
添加AngularJS过滤器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;
};
});
答案 1 :(得分:0)
您可以尝试添加像Alex所说的自定义过滤器,或者可以使用这样的默认过滤器(如果您只想在select
中显示深色或浅色):
<select ng-model="myColor" ng-options="color.name group by color.shade for color in colors | { color: { shade: shadeModel }}">
shadeModel
可能是'','暗'或'亮'