2016-11-01 7 views
0

要求。AngularJS HTTP GET空初めて

factory.getProductbyID = function (id) { 
    return $http.get('/Pedidos/GetProduct/' + id); 
} 

私はボタンで、このコードを呼び出すの工場は、私の工場で、getProductbyIDは、httpリクエスト

を呼び出すために私の関数です。ボタンを最初にクリックすると、空のレスポンス '[]'が返されますが、次にそのボタンをクリックすると、うまく動作します。あなたのための

おかげ限り、その呼び出しが非同期であるので、私は$http.get戻り約束を知っているよう

+0

ボタンのコードは何ですか? –

+1

[ネットワーク]タブでアクティビティを確認しましたか? –

+0

最初の呼び出しで 'id'が指定されていない場合や、次の呼び出しで異なる場合がありますか? – dinony

答えて

0

を助けます。私はこのようにそれをやっているだろう、その工場は約束を返し、お使いのコントローラであなたが成功を処理するあなたの文脈では

$http.get('/someUrl', config).then(successCallback, errorCallback);

:このことを念頭に置いて$http.getへの典型的な呼び出しは、このようなものでなければなりませんエラーコールバックを適切に入力してください:

factory.getProductbyID = function (id) { 
var deffered = $q.defer();  
    $http.get('/Pedidos/GetProduct/'+ id) 
     .then(function (result) {    
      deffered.resolve(result); 
     }, function (data) { 
      deffered.reject(data); 
     }); 

    return deffered.promise; 
} 
+0

彼はすでに約束を返しています( 'return $ http.get(...)')。$ qラッパーは必要ありません。 – dinony

+0

動作しません。このソリューションは常に未定義の値を返します(初回と次回も) –

+0

開発者ツールのネットワークタブからAPI呼び出しの結果を投稿できますか?たぶん問題はどこか他のところです。 –

関連する問題