Ana*_*and 3 angularjs angularjs-directive angularjs-scope angularjs-ng-repeat angularjs-filter
我有一个表单,其中包含一些输入类型,如文本,广播等.当我提交表单时,它会在表单下方列出输入的详细信息(使用模板和指令).我想在年龄中进行过滤,即数字输入类型,这样当我给出年龄范围时,它应该过滤具有相应年龄范围的配置文件.以下是plunker:
http://plnkr.co/edit/h8p8rtZuAhCoKClUjgE9?p=preview
<table border="1" style="width:200px">
<tr>
<td> <div>Name : {{ formElement.name }} </div><br> </td>
</tr>
<tr>
<td> <div>Age : {{ formElement.age }}</div><br> </td>
</tr>
Run Code Online (Sandbox Code Playgroud)
run*_*arm 10
您可以编写一个自定义过滤器函数,按特定字段的范围进行过滤:
$scope.byRange = function (fieldName, minValue, maxValue) {
if (minValue === undefined) minValue = Number.MIN_VALUE;
if (maxValue === undefined) maxValue = Number.MAX_VALUE;
return function predicateFunc(item) {
return minValue <= item[fieldName] && item[fieldName] <= maxValue;
};
};
Run Code Online (Sandbox Code Playgroud)
并在ng-repeat表达中使用它:
<div ng-repeat="formElement in formElements | filter:byRange('age', filterModelMin.age, filterModelMax.age)">
Run Code Online (Sandbox Code Playgroud)
请注意,filterModelMin.age并filterModelMax.age可以直接使用fasterDisplay指令,因为二者fasterForm并fasterDisplay没有自己的范围.
示例plunker: http ://plnkr.co/edit/dFbBCKxSxm9RI9dwSeYR?p = preview
| 归档时间: |
|
| 查看次数: |
14744 次 |
| 最近记录: |