javascript - 用于过滤 Angular 滑动条值

标签 javascript angularjs filter

我目前正在开发我的第一个 AngularJS 项目,所以我根本没有 Angular 经验。在我的 html 中,我显示了一个带有两个 handle 的滑动条。这样我可以获得最小值和最大值。这发生在这里:

  <div data-role="rangeslider">
    <label for="width-min">Width</label>
    <input type="range" name="width-min" id="width-min" value="5" ng-value="5"  min="3" max="53.5" ng-model="minWidth">
    <label for="width-max">Width</label>
    <input type="range" name="width-max" id="widthe-max" value="35" ng-value ="53"  min="3" max="53.5" ng-model="maxWidth">
  </div>

我的 Controller 中有一小部分数据:

 $scope.products = [
{partNumber: "5400-003-412", specific:"V",width:5.5,MT:0.25,CT:0.33,L:18},
{partNumber: "5400-003-410", specific:"DC",width:5.5,MT:0.25,CT:0.33,L:11.5},
{partNumber: "5400-003-102s3", specific:"V",width:19.5,MT:0.38,CT:0.61,L:25.4}
];

正如你们所看到的,每个产品都有宽度。我只想显示那些宽度介于 slider 上所选的最小值和最大值之间的产品。有什么建议么?

最佳答案

您可以使用 Angular filters为了那个原因。过滤器可以是字符串对象function()

解决方案是在呈现列表时包含过滤器。

<ul>
  <li ng-repeat="product in products | filter : filterByWidth"
    {{product.partNumber}} - {{product.width}}
  </li>
</ul>

然后在您的 Controller 中,您可以包含一个过滤器函数(在本例中为 filterByWidth)。

$scope.filterByWidth = function(product, index, array) {
  if (product.width > $scope.minWidth &&
    product.width < $scope.maxWidth) {
    return true;
  } 
}

关于javascript - 用于过滤 Angular 滑动条值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793091/

相关文章:

javascript - chrome 的样式问题,但在 Firefox 上运行良好

javascript - 你能通过 AJAX 将谷歌地图插入到页面中吗

angularjs - 如何避免 "polluting"使用 ui-router 的解析方法

javascript - 如何在 AngularJS 中追加 Json 字符串

node.js - 没有 Express Js 和 Nodejs 的带有 Angular JS 的 MongoDB

javascript - 使用 jquery 添加多个过滤器

filter - 使用 FFMPEG 同时应用多个过滤器

javascript - 在 React JS 中获取数据时无法访问类属性

javascript - 一屏显示图片的CSS/Javascript框架

r - 使用带计数的过滤器