【发布时间】:2015-07-03 04:21:06
【问题描述】:
我有这样的指令
ng-repeat="place in tb_places | filter:{'id':inputID}"
输出一些对象数组看起来像这样
$scope.tb_places = [
{name: 'some1', id:1}
...
{name: 'some10', id:10}
{name: 'some11', id:11}
{name: 'some12', id:12}
...
]
当我更改 inputID 并将其设置为 1 时,结果数组将填充源数组的元素,其 'ids' 为 1 和 10、11、12。因此,“id”值的一部分像子字符串一样被检查,而不是数字。 怎么治?
谢谢!
UPD 我尝试在过滤器表达式中添加“:true” - 它完全清除输出(结果数组),它适用于简单的字符串数组,但不适用于对象(“true”希望与模式对象完全匹配,这意味着它的所有属性)
解决了!!!
对不起各位,是我的错! 'inputID' 与 'id' (字符串与整数)不是同一类型,因此内置比较器 (":true") 返回 false。非常感谢!
ps 抱歉,我不能为你的答案投票 - 缺乏声誉......再见!
【问题讨论】:
-
所以您想要完全匹配?看看这个stackoverflow.com/questions/17480526/…
-
我尝试在过滤器表达式中添加 ":true" - 它完全清除输出(结果数组),它适用于简单的字符串数组,而不是对象("true" 需要完全匹配与模式对象,这意味着具有所有属性)
标签: arrays angularjs angularjs-ng-repeat angularjs-filter