Angular ng repeat并在下拉列表中过滤

时间:2017-03-13 10:30:14

标签: javascript angularjs

嗨,请你帮助我,我有一个角度js的情况,根据不同成员的年龄加载一个占用下拉列表,请看我代码snipet。

<select selectpicker ng-model="data.dataRequest.members[$index].occupation" 
   ng-options="occ.key as occ.value for occ in Lov.occupation track by occ.key">

我想写这样的东西,

但是我看到comaprison运算符没有在过滤器中工作,我甚至写了一个自定义过滤器但仍然没用。请帮忙。

2 个答案:

答案 0 :(得分:1)

您可以使用filter管道动态过滤职业列表

<select ng-model="data.dataRequest.members[$index].occupation" 
   ng-options="occ.key as occ.value for occ in Lov.occupation | filter: myCoolFiter track by occ.key">
控制器中的

$scope.age = 13;    
$scope.myCoolFiter = function(occupationItem){
       // return true or false based on the logic
       // for ex: return occupationItem.fromAge < $scope.age && $scope.age < occupationItem.toAge; 
}

但是,为了能够在模板中使用filter管道,Lov.occupation应该是数组,而不是对象

注意

对于数组中的每个项,

myCoolFilter由角filter管道调用。 filter管道具有以下参数列表function(value, index, array)。以下是docs了解详情

答案 1 :(得分:0)

您可以过滤控制器中的对象。只需将对象更改为数组。 为此:    $scope.newTable = []

`$scope.occupation.forEach(function(item) { newTable.push(item) })`

$scope.occupation = newTable