如何有效地处理Json数组?

时间:2012-12-15 12:55:50

标签: json angularjs

我有像这样的json数组

//data.json
{
"one":   [ {"name":"john"},{"name":"joe"},{"name":"vicky"} ],
"two":   [ {"name":"mark"},{"name":"nike"},{"name":"albert"} ]
}

//filter.js
angular.module('eventFilters', ['calenderServices']).filter('compare', function(Name) {
var e=Name.query();

return function(input) {
alert(e['one'].length) //-->displays nothing
}

我试图检索数组“one”和“two”的长度,但jsondata ['one']。长度不返回长度,它不显示任何东西。我用来从外部文件获取json数据的角度休息服务是正确的,毫无疑问。因为我在过滤器中获取json数据,所以我无法使用$ scope.e = Name.query();所以我尝试使用'var',它与我的旧json数据工作正常,但不是我的新json文件。可能是什么问题?

提前致谢

1 个答案:

答案 0 :(得分:1)

不完全确定你在这里要解决的确切问题是什么,但你遇到的问题是你有一个不会立即返回结果的异步调用(.query())(我怀疑你正在使用$ resource,它的语法可能暗示这是同步的,更多信息在这里:https://stackoverflow.com/a/11966512/1418796)。

现在,过滤器还没有准备好处理异步结果,所以你在这里尝试做的事情是行不通的。最终,问题更多地与要过滤的异步函数调用相关联。

我很乐意在这里提供更多帮助,但从功能上讲,我不清楚你想要实现的目标。