0

FacebookへのAPI呼び出しを実行しようとしています(angularJsを使用しています。これが私のコードです(サービスから取得):

fbTest: function (name) {
    resource = $resource('http://graph.facebook.com/:id?fields=id,name,picture', { id: '@id' });
    return resource.get({ id: name });
}

それはうまくデータを返します:(Fiddlerで検査)

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Cache-Control: private, no-cache, no-store, must-revalidate
Content-Type: application/json; charset=UTF-8
ETag: "c49e5dcad5a864ff2e16bb3af547231f725c05e7"
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Pragma: no-cache
X-FB-Rev: 1002313
X-FB-Debug: tMeW4nnfiRBj6VK+QRtbe0YdaGfQfkXcaWL4VzXTXxw=
Date: Mon, 11 Nov 2013 16:53:29 GMT
Connection: keep-alive
Content-Length: 241

{
   "id": "Data",
   "name": "Data",
   "picture": {
      "data": {
         "url": "Data",
         "is_silhouette": false
      }
   }
}

しかし、どうすればプロパティにアクセスできますか? .name を書いてみましたが、何も返されません。

4

2 に答える 2

1

ドキュメンテーションは私には少し不明確ですが、.get非同期で実行するなどの公開されたメソッドのようです。これが意味することは、からの戻り値.getが実際には HTTP からのデータを返していない可能性があるということです。

代わりに、次のようにする必要があります。

resource.get({ id: name }, function (data) {
    // do something with data.name, etc.
});
于 2013-11-11T17:07:15.533 に答える
1

関数を返すときに get の結果が準備できていないために発生します。を返していpromiseます。

$resource.getを何らかの属性にバインドしてみてください$scope。準備ができたら、正しく表示されます。

于 2013-11-11T17:08:23.200 に答える