我正在使用Ion.RangeSlider这是一个jquery滑块。
我有通过http传入的json数据,并且正在使用ng-repeat指令在页面中显示它。
我想使用如下所示的滑块过滤JSON数据
在图像下,您可以看到两个值 185; 500 ,这是将ng-model绑定(bind)到滑块时获得的值。
因此,我的问题是如何使用滑块过滤数据?
编辑
我更改了我使用的Slider,并进行了相同的CSS更改,使其看起来像上面的Slider。
https://github.com/rzajac/angularjs-slider
最佳答案
这是使用ng-repeat
和自定义过滤器的方法。只需使用您的绑定(bind)值,然后将它们替换为min
中的max
和myfilter
,例如:
<div ng-repeat="item in items | myfilter: { min: slider.min, max: slider.max }">
JSFiddle
HTML:
<div ng-app="app" ng-controller="dummy">
<div ng-repeat="item in items | myfilter: { min: 185, max: 500 }">
<p>{{item.name}}</p>
</div>
</div>
JS:
var app = angular.module("app", []);
app.controller('dummy', function($scope, $sce) {
$scope.items = [{name: 'hello', cost: 100}, {name: 'world', cost: 200}]
});
app.filter('myfilter', function() {
return function( items, condition) {
var filtered = [];
if(condition === undefined || condition === ''){
return items;
}
angular.forEach(items, function(item) {
if(item.cost >= condition.min && item.cost <= condition.max){
filtered.push(item);
}
});
return filtered;
};
});