Javascript 带整数比较的AngularJS过滤器

Javascript 带整数比较的AngularJS过滤器,javascript,jquery,angularjs,angularjs-ng-repeat,Javascript,Jquery,Angularjs,Angularjs Ng Repeat,因此,我在我的网站上有一个“价格”字段,它是使用jQueryUI滑块创建的。此字段由两个整数值组成:minPrice和maxPrice 假设我有一个如下所示的对象数组: objarr=[ { 'name'='item1', 'price'=100 }, { 'name'='item2', 'price'=200 },... ] 以及以下带有ng重复的div: <div ng-repeat="obj in objarr"> {{obj.name}}: ${

因此,我在我的网站上有一个“价格”字段,它是使用jQueryUI滑块创建的。此字段由两个整数值组成:minPrice和maxPrice

假设我有一个如下所示的对象数组:

objarr=[
 {
  'name'='item1',
  'price'=100
 },
 {
  'name'='item2',
  'price'=200
 },...
]
以及以下带有ng重复的div:

<div ng-repeat="obj in objarr">
  {{obj.name}}: ${{obj.price}}
</div>

{{obj.name}:${{obj.price}

如何创建一个过滤器,以便只有obj['price']>minPrice和obj['price']您可以在控制器中编写一个简单的辅助函数:

$scope.filterRange = function(obj) {
    return obj.price > $scope.range.minPrice && obj.price <= $scope.range.maxPrice;
};
$scope.filterge=函数(obj){

return obj.price>$scope.range.minPrice&&obj.price您可以使用ng show filter:),它非常简单,适合您的问题,可以这样使用, span>{{obj.name}}:${{obj.price}}}span> ng展会文件:


最好的祝愿:)

另一种方法是编写角度过滤器

app.filter('pricebetween', function(){
  return function(items, min, max) {
      var filtered = [];
      angular.forEach(items, function(item, key) {
          if(item.price <= max && item.price >= min) { 
              filtered.push(item);
          }
      });
      return filtered;
  };
});
app.filter('pricebetween',function(){
返回函数(项目、最小值、最大值){
var筛选=[];
angular.forEach(项目、功能(项目、键){
如果(item.price=min){
过滤、推送(项目);
}
});
返回过滤;
};
});
然后在代码中

<div ng-repeat="obj in list | pricebetween:300:500">

在plnkr示例中,我还有大于过滤器


当我尝试此方法时,它不起作用,因为$scope.range的值是在加载对象后设置的。此外,在$scope.range的值更改后,筛选器也没有更新。在这两种情况下,您可能都不会触发$digest loop.simple solution,superb:)是这样,但在使用大量数据的情况下。
<div ng-repeat="obj in list | pricebetween:300:500">