AngularJS:NG-重复过滤器,当值大于 [英] AngularJS : ng-repeat filter when value is greater than

查看:1105
本文介绍了AngularJS:NG-重复过滤器,当值大于的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的NG-再讲抛出数据,它显示领域之一是NumberOfStamps:

 < TR NG-重复启动=列表Data.Items>
   &所述; TD>&下; A HREF ={[{list.Title}]} {[{list.ForeName}]} {[{list.SurName}]}&下; / A>&下; / TD>
   < TD>(出生日期{[{list.Dob}]})LT; / TD>
   < TD> {[{list.NumberOfStamps}]}邮票< / TD>
< / TR>

输出示例:

 出生1984年1月6日16邮票亚当先生日期快乐
出生24/11/1975 0邮票亚当先生伤心日期
出生1963年2月1日1邮票先生亚当绿色日期
出生21/1/1951 12邮票亚当先生红枣
出生28/10/1998 0邮票亚当先生蓝日期
出生25/9/2010 0邮票先生亚当布朗日期
出生24/8/1954 21邮票先生亚当黑枣
出生17/5/1942 54邮票先生亚当紫日期

我怎么能修改此纳克重复,只显示记录中,其中NumberOfStams> 0?我试过:

 < TR NG重复启动=,在列表Data.Items |过滤器:{NumberOfStamps大于0}>
   &所述; TD>&下; A HREF ={[{list.Title}]} {[{list.ForeName}]} {[{list.SurName}]}&下; / A>&下; / TD>
   < TD>(出生日期{[{list.Dob}]})LT; / TD>
   < TD> {[{list.NumberOfStamps}]}邮票< / TD>
< / TR>

期望的输出:

 出生1984年1月6日16邮票亚当先生日期快乐
出生1963年2月1日1邮票先生亚当绿色日期
出生21/1/1951 12邮票亚当先生红枣
出生24/8/1954 21邮票先生亚当黑枣
出生17/5/1942 54邮票先生亚当紫日期


解决方案

创建对相关范围predicate功能:

  $ scope.greaterThan =功能(道具,VAL){
    复位功能(项目){
      返回项目[道具]> VAL;
    }
}

作为第一个参数,它需要的对象的属性名称。第二个参数是一个整数值。

使用它在你的看法是这样的:

 < TR NG重复启动=,在列表Data.Items |过滤器:GREATERTHAN('NumberOfStamps',0)>

演示

I have a simple ng-repeat that throws out data, one of fields it displays is NumberOfStamps:

<tr ng-repeat-start="list in Data.Items ">
   <td><a href=" {[{list.Title}]} {[{list.ForeName}]} {[{list.SurName}]}</a></td>
   <td>(Date of Birth {[{list.Dob}]})</td>
   <td>{[{list.NumberOfStamps}]}  stamps</td>
</tr>

Example output:

Mr Adam Happy  Date of Birth 01/6/1984     16 stamps
Mr Adam Sad    Date of Birth 24/11/1975    0 stamps
Mr Adam Green  Date of Birth 02/1/1963     1 stamps
Mr Adam Red    Date of Birth 21/1/1951     12 stamps
Mr Adam Blue   Date of Birth 28/10/1998    0 stamps
Mr Adam Brown  Date of Birth 25/9/2010     0 stamps
Mr Adam Black  Date of Birth 24/8/1954     21 stamps
Mr Adam Violet Date of Birth 17/5/1942     54 stamps

How can i modify this ng-repeat to only show records where the NumberOfStams is > 0? I've tried:

<tr ng-repeat-start="list in Data.Items | filter:{NumberOfStamps > 0}">
   <td><a href=" {[{list.Title}]} {[{list.ForeName}]} {[{list.SurName}]}</a></td>
   <td>(Date of Birth {[{list.Dob}]})</td>
   <td>{[{list.NumberOfStamps}]}  stamps</td>
</tr>

Expected output:

Mr Adam Happy  Date of Birth 01/6/1984     16 stamps
Mr Adam Green  Date of Birth 02/1/1963     1 stamps
Mr Adam Red    Date of Birth 21/1/1951     12 stamps
Mr Adam Black  Date of Birth 24/8/1954     21 stamps
Mr Adam Violet Date of Birth 17/5/1942     54 stamps

解决方案

Create a predicate function on the relevant scope:

$scope.greaterThan = function(prop, val){
    return function(item){
      return item[prop] > val;
    }
}

As a first argument, it takes a property name on the object. The second argument is an integer value.

Use it in your view like this:

<tr ng-repeat-start="list in Data.Items | filter: greaterThan('NumberOfStamps', 0)">

Demo

这篇关于AngularJS:NG-重复过滤器,当值大于的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆