Angular:在使用for(键,值)时对ng-options使用过滤器

时间:2015-07-27 12:58:13

标签: javascript angularjs angularjs-filter

我有一个ListBox,我想根据用户输入过滤,以便只显示“匹配”的可能性。

不幸的是,“过滤器”仅更改值显示或根本不起作用。我希望这是因为我使用(键,值)并且它有不同的行为?

<p>Filter : <input type="text" ng-model="FilterAttr"/> {{FilterAttr}}</p>
<select ng-options="value as (value.attr+ ' : ' +value.otherAttr) for (key,value) in CustomList | filter:{attr:FilterAttr}"
     size="4" ng-model="nevermind" ng-change="changeSensor(TyreDetails)">
</select>

这是一个jsffidle:http://jsfiddle.net/hLywvam7/2/

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在Angular filters中只能应用于数组,而不能应用于对象。

现在将“CustomList”格式更改为Array或将“CustomList”对象转换为如下所示的数组

$scope.filterCustomList = function(items) {
    var result = [];
    angular.forEach(items, function(value, key) {
        result[key] = value;
    });
    return result;
}