Angular js创建一个自定义过滤器,返回小于动态数字的所有项
Angular js creating a custom filter that returns all items less than a dynamic number
所以我有一个用ng repeat显示的项目数组。
项目具有基于某些输入框的ng模型应用的过滤器。
每个项目都有一个价格属性,该属性是一个数字。
我希望能够在输入框中键入价格,然后取回<=价格。
如果它可以作为一个自定义过滤器来完成,那就太好了,但它需要将输入框ng模型链接到ng重复上的过滤器,并带回小于或等于它的项目。
我知道这有点棘手,但如果有人能帮忙,我会非常感激。
HTML
<div ng-app="app" ng-controller="ctrl">
Max price: <input type="text" ng-model="maxPrice">
<ul ng-repeat="e in items | cheaperThan:maxPrice">
<li>Item name: {{e.name}}, price: {{e.price}}$</li>
</ul>
</div>
JavaScript
var app = angular.module('app', []);
app.controller('ctrl', function($scope){
$scope.maxPrice = 100;
$scope.items = [
{name: 'Item 1', price: 123},
{name: 'Item 2', price: 110},
{name: 'Item 3', price: 90},
{name: 'Item 4', price: 80}
];
});
app.filter('cheaperThan', function(){
return function(ar, maxPrice){
console.log(ar);
return ar.filter(function(e){
return e.price <= maxPrice;
});
};
});
JSFiddle
我认为这样的东西会起作用。
<input type="text" ng-model="somevalue"/>
<div ng-repeat="item in myitems | filter:myfilter(item)"></div>
$scope.somevalue;
$scope.myfilter = function(item) {
return function(theItem) {
// Return true or false base on the item and $scope.somevalue
};
};
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 动态分配GA增强型电子商务跟踪器
- onkeyup无法动态创建多个文本区域
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何使Javascript动态html表及其上的事件
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 如何使用javascript从主svg对象动态创建svg视图框
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- 如何在Google柱状图中动态添加行/列
- 困在逻辑中试图定位动态的东西
- 在动态创建的元素上获取对特定选择器的引用
- 如何动态插入jquery代码
- 使用Google Visualization动态调用构造函数
- 使用jQuery动态添加表并在其中动态添加行
- d3基于用户选择动态更新节点
- 使用JQuery的动态上下文菜单
- Angular js创建一个自定义过滤器,返回小于动态数字的所有项