4

私はこれを私の工場に持っています

productsFactory.getOneProduct = function(){
  $http({
    method: 'GET',
    url: '/api/products/' + $stateParams.productID
  }).
    success(function(data, status, headers, config){

      console.log(data);
      return data;
    }).
    error(function(data, status, headers, config){

    });
}

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

$scope.selectedProduct = ProductsFactory.getOneProduct();

console.log(data) は、必要なデータを出力します。しかし、コントローラーから呼び出すと「未定義」になります。無名関数から戻ることと何か関係があると思いますか? 私はそれを間違っていますか?

4

2 に答える 2

2

Promiseから返される を返す必要があります$http

productsFactory.getOneProduct = function(){
  return $http({
    method: 'GET',
    url: '/api/products/' + $stateParams.productID
  });
}

そして、コントローラーで:

productsFactory.getOneProduct().then(successFunction, errorFunction);

ファクトリ コールをさらに簡素化できます。

 productsFactory.getOneProduct = function(){
      return $http.get('/api/products/' + $stateParams.productID);
    }
于 2013-09-17T14:19:01.983 に答える