是否可以将 HTML 输入字段变量传递给自定义 Angularjs 过滤器?

Is it possible to pass HTML input field variables to a custom Angularjs filter?

我是 Angular 的新手,所以这可能真的很简单。 我有一些优惠的 JSON 数组。每个报价都有一个价格等。我希望能够添加一个过滤器,以便用户可以指定他们的 min/max 花费并且只看到属于这些括号的报价。

在我的列表控制器中

// MinMax filter:
        $scope.minMax = function(prop, mn, mx){
            return function(item){
              if (  (Number(item[prop]) >= mn) && (Number(item[prop])<= mx) ) return true;
            }
        }

在视图中 HTML 我有两个简单的文本输入字段:

 <input id='cheapest'   name="cheapest" type='text' value='10' />
 <input id='dearest'    name="dearest"  type='text' value='5000'  />

和转发器

<div ng-repeat="offer in offers | filter: minMax('Price' ,  [?cheapest?], [?dearest?])  ">

当我硬编码输入值时过滤器可以工作,但我如何将它们绑定到输入字段?

谢谢

这是对船长的召唤 ngModel ;)

只需绑定您的 input 值:

<input id='cheapest'   name="cheapest" type='text' value='10' ng-model="cheapest" />
<input id='dearest'    name="dearest"  type='text' value='5000' ng-model="dearest"  />

并将值传递给您的过滤器:

<div ng-repeat="offer in offers | filter: minMax('Price', cheapest, dearest)  ">    

或通过 控制器 中的 $scope.cheapest 访问它们。

虽然我不确定语法,但它会以某种方式工作:)