我正在使用ui-select来显示一个下拉列表,其中包含我以json响应形式从web服务获取的值。我有另一个数组,我有" id" s只是整数值。我想通过数组的值来过滤ui-select。
我怎么能实现这个目标?
答案 0 :(得分:2)
您可以创建自己的自定义过滤器,它只是在控制器中定义的功能,它将如下所示:
$scope.customFilter = function(item) {
var arr = [1,25,8]; //Your integer array here
return arr.indexOf(item) > -1; //returns true if exists
}
您的HTML将是:
<ui-select-choices repeat="x in myArray | filter: customFilter">
{{x}}
</ui-select-choices>
更新了我发现的Plunker。看看如何根据过滤函数中的['Green','Red']数组过滤颜色列表。
答案 1 :(得分:0)
修改:以下解决方案仅适用于angular native select,而不适用于angular-UI's select。因此,这个答案并不适合这个问题,但我会留在这里寻找原生解决方案的社区,以及lodash可读性的东西。
我会使用一个简单的filter,可能会使用lodash来提高可读性
<强>控制器强>
Socket socket = null;
DataInputStream dataInputStream = null;
dataInputStream = new DataInputStream(
socket.getInputStream());
String clientDayOfWeek = dataInputStream.readUTF();
ArrayList<String> ar = new ArrayList<String>();
String temp = clientDayOfWeek;
ar.add(temp);
System.out.print("Items in list: "+ ar);
<强>模板强>
$scope.selectedBean = null;
$scope.beans = [{id:1},{id:2}];//database lookup or something
$scope.idsFilter = [1, 2];//ng-model or something
$scope.idInArray = function(beans, ids) {
return _.filter(beans, function(bean){
return _.contains(ids, beans.id);
});
}