2012-12-15 74 views
1

我有一个JSON数组这样如何有效地处理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 
} 

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

在此先感谢

+0

有没有什么办法可以在过滤器中使用$ scope? –

+0

你有没有检查过你得到的物体,所以'e'?如果是这样怎么样? –

+0

是的,它什么也没有显示。只是空着。 –

回答

1

不完全知道什么是你正试图在这里解决的确切问题,但这个问题要在其中碰撞这里要说的是你有一个异步调用(.query()),其不会立即返回结果(我怀疑你正在使用$资源,它的语法可能表明它是同步的,更多信息在这里:https://stackoverflow.com/a/11966512/1418796)。

现在,过滤器并未准备好处理异步结果,所以您在此尝试执行的操作将不起作用。最终,问题更多地与要过滤的异步函数调用相关联。

想在这里帮助更多,但我不清楚你试图在功能上实现什么。