2

私はアプリを構築しています

var HappySundayonEtsyApp = angular.module('HappySundayonEtsyApp', ['ngResource']);

のようなコントローラーで

HappySundayonEtsyApp.controller('ListingsController',
function ListingsController ($scope, $filter, Listings, $resource) {
$scope.sortingOrder = sortingOrder;
...

コントローラーは、テスト用にコントローラーに追加されたいくつかの静的 JSON で正常に動作しています。次のように定義されたサービスでデータを取得しようとすると

HappySundayonEtsyApp.factory('Listings', ['$resource', function ($resource) {
var resource = $resource('/listings/:id', { 
  id : '@id' 
}, {
  index : { method: 'GET', isArray : true },
  save : { method : 'PUT' }
});
return resource;
}]);

そしてコントローラーで

$scope.items = Listings.get()

何も機能しません。URL は、単純な

$http.get('/listings/').success(function(data){
   $scope.items = data;
});

デバッガー(Chrome)で見る

Listings.get(): h
  __proto__: h

バージョン 1.0.3 を使用しています。誰かが助けてくれれば本当にありがたいです.2日間読んで、試して、デバッグした後、私は非常にイライラしています. たぶん、単純なことです...

ありがとう。

4

2 に答える 2

4

を使用する場合$resource.getメソッドを呼び出しても HTTP 呼び出しからの応答は返されず、promise が返されるだけです。これは、$scope.items が将来に結果を含むことを意味します。

HTTP/$resource 呼び出しの応答が含まれていることを確認する$scope.itemsには、代わりにコールバックで $scope.items を割り当てます。

Listings.get(function (response) {
    $scope.items = response;
});

ただし、これがあるとしましょう:

<ul>
    <li data-ng-repeat="item in items"></li>
</ul>

次に、これを使用できます。$scope.items = Listings.get()そのため、約束が果たされると、繰り返しが更新され、すべてのアイテムが反復されます。

于 2012-12-11T21:52:41.510 に答える
1

実際には、あなたの JSON は配列のように見えます。また、indexaction を setisArray : trueに具体的に定義したので、おそらく次のようにするつもりでした:

$scope.items = Listings.index();
于 2012-12-11T21:23:53.933 に答える