0

私は現在、アンダースコア.jsがほとんどないAngularのバックエンドWebサイトに取り組んでいます。私のバックエンドには、非常に便利な php-framework Laravel 4 を使用しています。私が直面している問題は次のとおりです。

angular で URL を照会すると、応答は素晴らしくきれいなので、問題なく ng-repeat できます。しかし、アンダースコアで応答の最初の要素を抽出しようとすると、 : undefined が表示されます。

ここに私のコントローラのコードの抜粋があります:

var Client = $resource('myUrl/that/works/fine/and/returns/well');

var resultat = Client.query();

$scope.clients = resultat ;

$scope.isAnArray = _.isArray(resultat); // it returns true;

$scope.myFirstElemInArray is undefined という行を試してみると ???

$scope.myFirstElemInArray = _.first(resultat ); // expected:the first element.

何が悪いのか本当にわかりません。これが私の変数resultatの内容です:

 [{"id":"2","email":"olivier@example.com"},{"id":"3","email":"mezigh@example.com"}]

誰かが少し助けてくれるなら、私はこのオリヴィエに夢中です (Fr)

4

1 に答える 1

3

これにはコールバックを使用する必要があります。$resourceドキュメントの内容は次のとおりです

$resource オブジェクト メソッドを呼び出すと、すぐに空の参照 (isArray に応じてオブジェクトまたは配列) が返されることに注意してください。サーバーからデータが返されると、既存の参照に実際のデータが取り込まれます。通常、リソースはモデルに割り当てられ、ビューによってレンダリングされるため、これは便利なトリックです。オブジェクトが空の場合、レンダリングは行われません。サーバーからデータが到着すると、オブジェクトにデータが取り込まれ、ビューが自動的に再レン​​ダリングされて新しいデータが表示されます。これは、ほとんどの場合、アクション メソッドのコールバック関数を記述する必要がないことを意味します。

何かのようなもの

Client.query(function(data) {
$scope.myFirstElemInArray = _.first(data);
});
于 2013-06-27T11:42:15.293 に答える