我的json文件如下所示:
[
{
"id" : "1",
"type" : "hardware"
},
{
"id" : "2",
"type" : "software"
}
]
现在我运行以下代码:
$http({
method: 'get',
url: '/tools.json'
}).success(function(data, status, headers, config) {
///whatever
})
我通过ng-repeat
获取这两个对象进行重新存档,没关系。
现在,我想在我的应用中创建过滤器,比如仅显示“硬件”或“软件”,这是实现此目的的最佳方法,有没有办法从中获取硬件类型的对象JSON本身? (查询JSON并获取匹配的对象)我该怎么做?为了做到这一点,我应该在代码中更改什么,或者在获取整个JSON之后我应该使用Angular过滤器来呈现硬件类型。
我对Angular没有多少经验,请告诉我是否有其他方法可以实现我想要的目标。
提前致谢。
答案 0 :(得分:2)
完全是你的选择。
理想情况下,您的后端应该返回由查询过滤的JSON。
如果您想要即时响应,可以使用Angularjs的过滤器对您从服务器获取的相同数据进行过滤。这样做还可以进行全文搜索,这非常简洁。
答案 1 :(得分:0)
如果您只想过滤JSON数据,可以使用reduce
方法,如下所示:
var hardware = data.reduce(function(result, current) {
if(current.type === 'hardware') {
result.push(current);
}
return result;
}, []);
提供小提琴here。
答案 2 :(得分:0)
这种过滤的理想位置是在后端,给定类型。但出于某种原因,如果要在浏览器上执行此操作,可以使用简单的for循环来过滤类型为硬件的对象。更简洁的方法是使用下划线。在项目中包含下划线源文件,并执行_.filter函数来过滤所需的对象。您可以在此处详细了解过滤器功能:http://underscorejs.org/#filter