我有像这样的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文件。可能是什么问题?
提前致谢
答案 0 :(得分:1)
不完全确定你在这里要解决的确切问题是什么,但你遇到的问题是你有一个不会立即返回结果的异步调用(.query())(我怀疑你正在使用$ resource,它的语法可能暗示这是同步的,更多信息在这里:https://stackoverflow.com/a/11966512/1418796)。
现在,过滤器还没有准备好处理异步结果,所以你在这里尝试做的事情是行不通的。最终,问题更多地与要过滤的异步函数调用相关联。
我很乐意在这里提供更多帮助,但从功能上讲,我不清楚你想要实现的目标。