如何使用 jquery 滑块过滤 ng-repeat 中的数据?

How to filter data in ng-repeat using a jquery slider?

我正在使用 Ion.RangeSlider,它是一个 jquery 滑块。 我有 json 来自 http 的数据,我正在使用 ng-repeat 指令在页面中显示它。 我想使用如下所示的滑块过滤 JSON 数据

在图像下您可以看到两个值 185;500 这是我将 ng-model 绑定到滑块时得到的值。

所以,我的问题是如何使用此 滑块 过滤我的数据?

编辑 我更改了我正在使用的 Slider 并进行了相同的 CSS 更改,使其看起来像上面的滑块。 https://github.com/rzajac/angularjs-slider

以下是使用 ng-repeat 和自定义过滤器的方法。只需使用您的绑定值并将它们替换为 myfilter 中的 minmax,例如:

<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;
  };
});