2015-10-03 20 views
6

このLinkを参照した後、私の角サービスにJSONデータを取得しようとしています。

サービス:

.factory('restservice', ['$rootScope','$http', '$q', '$log', 
function($rootScope,$q, $http) { 
return { 
    getData: function() { 
     var defer = $q.defer(); 
     $http.get('xyz.com/abc.php', { cache: 'true'}) 
     .success(function(data) { 
      defer.resolve(data); 
     }); 

     return defer.promise; 
     } 
}; 
}]) 


コントローラー:

.controller('RestaurantsCtrl', function ($scope,$http, restservice,restViewservice){ 

     restservice.getData().then(function(data) { 
     $scope.Restaurants = data; 
    }); 

}) 


このコンソールを実装すること「$のq.deferがfunctiではないと言うの後「」にあります。

ここに問題がありますか?助けてください ...!! Angular Jsの新機能です。何かが間違っていれば許してください。

+0

'$ q.defer'は使用しないでください。' $ http.get(..) 'を返すだけです。また、 'success'は廃止予定です。代わりに' then'を使用してください。 –

+0

ありがとう! :) –

+0

人々がStackoverflowで質問をするような素晴らしいこと、私はこの質問も答えが多くの人々の問題を解決したと確信しています。このおかげで – M98

答えて

21

あなたは間違ったサービス定義を持っている:

factory('restservice', ['$rootScope','$http', '$q', '$log', 
function($rootScope,$q, $http) { 

は次のようになります。

factory('restservice', ['$rootScope','$http', '$q', '$log', 
function($rootScope,$http, $q, $log) { 

よくある間違い:)

+0

ありがとう!早かった !働いた!私は今や角張っていることについての愚かさを感じる。それは問題ではないと思った。まあありがとう –

+0

誰もこのタイプのエラーを、私も、角度の2年後にします。心配はありません:) –

+0

@Maxxim Shoustinはキャッシュを手伝ってくれますか?上記のHTTP取得オブジェクトはキャッシュされません。私はanular jsを使ってionicでappを構築しています。このデフォルトのキャッシュはモバイルアプリでは機能しませんか? –

0

私たちは、同じエラーに直面し、現在解決:

角度の古いバージョンでは上記のエラーが発生するため、角度1.6.1のバージョンファイルを参照してください。

関連する問題