1

私はこのような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']。lengthが長さを返さず、何も表示されません。外部ファイルからjsonデータを取得するために使用した角度のあるRESTfulサービスは正しいですが、それは間違いありません。フィルタでjsonデータを取得しているため、$ scope.e = Name.query();を使用できませんでした。だから私は'var'を使ってみました、それは私の古いjsonデータではうまくいきましたが、私の新しいjsonファイルではうまくいきませんでした。何が問題なのか?

前もって感謝します

4

1 に答える 1

1

ここで解決しようとしている正確な問題が何であるかは完全にはわかりませんが、ここでぶつかっている問題は、結果をすぐに返さない非同期呼び出し(.query())があることです(私はあなたが$ resourceを使用しており、その構文は同期を示唆している可能性があります。詳細については、https ://stackoverflow.com/a/11966512/1418796を参照してください)。

現在、フィルターは非同期の結果を処理する準備ができていないため、ここで実行しようとしていることは機能しません。最終的に、この問題は、フィルターへの非同期関数呼び出しに関連しています。

ここでもっと助けたいのですが、機能的に言​​えば、あなたが何を達成しようとしているのかわかりません。

于 2012-12-15T13:16:51.670 に答える