Javascript Angularjs按价格搜索产品(从价格到价格)

Javascript Angularjs按价格搜索产品(从价格到价格),javascript,angularjs,Javascript,Angularjs,我正在尝试添加过滤器,以便通过从一个价格搜索到另一个价格。我在控制器中有以下json格式的数组,如$scope.products [ {"product_id":"1","product_price":"185"}, {"product_id":"2","product_price":"45"}, {"product_id":"3","product_price":"123"}, {"product_id":"4","product_price":"23"}, {"produ

我正在尝试添加过滤器,以便通过
从一个价格搜索到另一个价格
。我在控制器中有以下json格式的数组,如
$scope.products

[
  {"product_id":"1","product_price":"185"},
  {"product_id":"2","product_price":"45"},
  {"product_id":"3","product_price":"123"},
  {"product_id":"4","product_price":"23"},
  {"product_id":"5","product_price":"776"}
]
下面是html中的循环

<ul class="items">
  <li ng-repeat="product in products | filter:{product_name: findname} | sizeFilter:(size_arr|filter:{on:true})" >
    <strong>{{product.product_name | CapsFirst}}</strong> 
    <strong>({{product.product_category}})</strong>
    <strong>({{product.product_size}})</strong>
    <strong>({{product.product_color}})</strong>
  </li>
</ul>
  • {{product.product_name}CapsFirst} ({{product.product_category}}) ({{product.product_size}}) ({{product.product_color}})
在视图中,我想添加两个输入字段,用于按价格搜索产品

<input type="number" ng-model="from_price" /> 
<input type="number" ng-model="to_price" /> 

有谁能指导我以正确的方式发展。我已经搜索过了,但找不到教程,我不擅长angularjs。谢谢…

在HTML中

 <li ng-repeat="product in products |rangePrice:
{'toPrice':to_price,'fromPrice':from_price}">
  • 在JavaScript中

    app.filter('rangePrice', function() {
        return function( items, rangePrice ) {
            var filteredValue= [];
            var toPrice= parseInt(rangePrice.toPrice);
            var fromPrice= parseInt(rangePrice.fromPrice);
            angular.forEach(items, function(item) {
                if( item.product_price>= toPrice&& item.product_price<= toPrice) {
                    filteredValue.push(item);
                }
            });
            return filteredValue;
        };
    });
    
    app.filter('rangePrice',function(){
    返回函数(项目、范围价格){
    var filteredValue=[];
    var toPrice=parseInt(rangePrice.toPrice);
    var fromPrice=parseInt(rangePrice.fromPrice);
    角度。forEach(项目、功能(项目){
    
    如果(item.product\u price>=toPrice&&item.product\u price,这里有一个关于plunkr的例子,说明您一直在要求什么。为了区分它们,我添加了一个产品名称,请尝试

    app.filter('sizeFilter',[function(){
    返回函数(值、配置){
    if(config.enabled){
    var filterResult=[];
    角度。forEach(值,函数(值){
    
    如果(value.product\u price>=config.from\u price&&value.product\u price)您在哪里使用from\u price和to_price@KannanThangadurai数组中只有一项
    product_price
    请尝试以下操作:
    $scope.filterAge=function(fp,tp){return(product_price>fp&&product_price
    当我使用其他过滤器时,它不起作用。存在一些冲突除了提供的过滤器外,您还使用了什么过滤器?我还提供了一个按名称过滤的附加示例。这里是:我使用3个过滤器用于其他目的。您可以提供这些过滤器吗?因为过滤器本身不会相互伤害,只要它们不改变输入模型,所以可能是加载顺序不同。请提供一个过滤器示例,您正在使用我使用的这种过滤器,
    $scope.color\u arr=[];angular.forEach($scope.area,function(cd){if(cd.product\u color!=未定义){$scope.color\u arr.push({product\u color:cd.product\u color,on:false}});
    app.filter('sizeFilter', [function() {
        return function(values, config) {
          if (config.enabled) {
            var filterResult = [];
            angular.forEach(values, function(value) {
              if (value.product_price >= config.from_price && value.product_price <= config.to_price) {
                filterResult.push(value);
              };
            });
            return filterResult;
          }
          return values;
        }
    }]);