我收到了商店的JSON文件,其中包含id,name和其他数据。 我有一个名为List的视图,其他名为Detail。
在List中,我列出了所有带有ng-repeat的JSON。 在详细信息中,我有'相同'列表,但是ng-repeat我使用id的过滤器,如:
<div class="item" ng-repeat="item in spots | filter:{id: idSpot}">
{{item.id}} - {{item.name}}
...
但我遇到的问题是,当我过滤商家ID:3时,显示所有商家的数字为3(3,30,73,33,...)。
我还发现 true 元素强制要严格比较收到的值:
<div class="item" ng-repeat="item in spots | filter:{id: idSpot}:true">
完美,当我写“filter:{id:7}:true”时,等于七。
但是当我比较它时,它就不起作用了,{id:idSpot}
$ scope.idSpot在Controller上正确设置,我知道它有效,因为它之前显示了所有三个(3,33,73,39,...)。 我可以使用console.log($ scope.idSpot)并确认它收到一个整数。
但该变量不适用于'true'。
我怎么能擦亮那个?
谢谢!
答案 0 :(得分:0)
好吧,因为我有很多时间思考,我找到了一个可以继续修补的补丁。
正如此代码:
<div class="item" ng-repeat="item in spots | filter:{id: idSpot}">
{{item.id}} - {{item.name}}
</div>
收到一位数字时,如3;它用3(13,31,33,34,...)打印所有的numbes,我将添加ng-if子句,取$ index == 0,这是返回的第一个最低结果。 #3。
<div ng-repeat="item in spots | filter:{id: idSpot}" ng-if="$index == 0">
但是没有更正过滤器。谢谢你的阅读。
答案 1 :(得分:0)
我有一个尤里卡时刻,并且出现在我的脑海里,为什么它向我失败了这个过滤,也许一些失去灵魂的人会找到这篇文章并有另外一个想法考虑。
当我有这个时:
[[1 2]
[5 6]]
$ scope.idSpot是一个从列表中接收一个项目时初始化的变量,因此我将{id}从JSON对象发送到此变量。
但我所拥有的不是整数。 '3'是一个字符串,所以当我强制比较(id == 3)时它失败了,因为我正在将一个字符与一个数字进行比较。 这是我的错。
我立刻来测试它,我是对的。 再次感谢你!