2012-12-15 122 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)。

現在,過濾器並未準備好處理異步結果,所以您在此嘗試執行的操作將不起作用。最終,問題更多地與要過濾的異步函數調用相關聯。

想在這裏幫助更多,但我不清楚你試圖在功能上實現什麼。