【问题标题】:Angularjs filter on integer/number in json objectAngularjs过滤json对象中的整数/数字
【发布时间】:2013-08-15 10:51:58
【问题描述】:

这是我的重复过滤器。

<div ng-repeat="f in fs | filter: v.list[vId].make.makerId | limitTo: 12">

make.makerId 是一个整数值,等于此示例列表中的 vId。

[{ vId: 28, qty: 21.07, fDate: "17/07/2013", price: 0.00 },
 { vId: 2,  qty: 24.26, fDate: "15/06/2013", price: 0.00 },
 { vId: 2,  qty: 22.16, fDate: "22/05/2013", price: 0.00 },
 { vId: 28, qty: 22.16, fDate: "28/05/2013", price: 0.00 },
 { vId: 72, qty: 22.16, fDate: "29/05/2013", price: 0.00 },
 { vId: 72, qty: 30.16, fDate: "30/05/2013", price: 0.00 },
 { vId: 28, qty: 25.98, fDate: "04/05/2013", price: 0.00 }]

当 vId = 28 时,我得到:

 { vId: 28, qty: 21.07, fDate: "17/07/2013", price: 0.00 },
 { vId: 28, qty: 22.16, fDate: "28/05/2013", price: 0.00 },
 { vId: 28, qty: 25.98, fDate: "04/05/2013", price: 0.00 }

当 vId = 72 时,我得到:

 { vId: 72, qty: 22.16, fDate: "29/05/2013", price: 0.00 },
 { vId: 72, qty: 30.16, fDate: "30/05/2013", price: 0.00 }

到目前为止一切都很好,但是当 vId = 2 时,我得到了整个列表。 2 的每个实例似乎都被提取了,有谁知道如何解决这个问题?

感谢

史蒂夫

【问题讨论】:

  • 这是过滤器的默认行为,它将搜索字符串“2”的每一次出现,因此“2”、“24.26”等......如果您需要更具体的内容,您可以按照文档docs.angularjs.org/guide/… =) 中给出的说明创建自己的过滤器

标签: json angularjs filter


【解决方案1】:

在 1.2RC1 中,您可以传递额外的 true 参数,表明您想要进行严格比较:

<div ng-repeat="f in fs | filter: v.list[vId].make.makerId:true | limitTo: 12">

文档:http://docs.angularjs.org/api/ng.filter:filter

在旧版本的 AngularJS 中,您可以编写自定义过滤器。

【讨论】:

  • 感谢大家的帮助,我通过将每个表的 id 与数组索引连接起来,使 vId 更加独特,从而解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多