0

製品カタログの詳細ビューを表示するクエリを作成しようとしています。

これは私のサービスです:

factory('ProductsFactory', function($resource){
    var products = {};

    products.getProducts = function(){
      var productItems = $resource('/api/products/:productId',{
        query: {
          method:'GET',
          params:{
            productId:'productId'
          },
          isArray: true
        }
      });

      return productItems;
    }
    return products;

  });

これは私のコントローラーです:

angular.module('clientApp')
  .controller('ProductCtrl', function ($scope, ProductsFactory, $modal, $log, $stateParams) {
    var productItems = ProductsFactory.getProducts()
    $scope.products = productItems.query();
    $scope.selectedProduct = productItems.get({productId:1});
  });

最初のもの (productsItems.query()) は、すべての製品を返します。できます。

しかし、選択した製品を表示することになっている $scope.selectedProduct は機能しません。

コンソールに次のエラーが表示されます。

TypeError: Object #<Resource> has no method 'push'

何が間違っている可能性がありますか?

4

2 に答える 2

2

これは、AngularJS がオブジェクト (2 番目のクエリの結果) を配列にキャストしようとするためだと思います。すべてのオブジェクトを取得すると機能しますが、単一のオブジェクトのみを取得すると失敗します。

于 2013-09-16T13:03:53.577 に答える