2015-10-03 15 views
6

Bu Link referansından sonra, JSON verilerini açısal hizmetime almaya çalışıyorum.

Hizmeti:

.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; 
     } 
}; 
}]) 


Denetleyici:

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

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

}) 


Bu konsolu uygulanması '$ q.defer bir functi olmadığını söylüyor sonra ''da.

Burada sorun nedir? Lütfen yardım et ...!! Angular Js için yeni bir şey çok yanlış bir şey varsa affedin.

+0

'$ q.defer' kullanamazsınız, sadece' $ http.get (..) 'döndürün. Ayrıca, "başarı" kullanımdan kaldırılır - bunun yerine "o zaman" ifadesini kullanın. –

+0

Bunun için teşekkürler! :) –

+0

İnsanların Stackoverflow ile ilgili sorularını sorduğu iyi bir şey, eminim ki bu soru ve aynı zamanda cevap birçok kişinin sorunlarını çözdü. Bu – M98

cevap

21

Yanlış hizmet tanımı var

Lütfen açısal 1.6.1 sürüm dosyasına bakın, çünkü eski açısal sürümü yukarıdaki hatayı verir.

+0

için teşekkürler Çok teşekkürler! Bu hızlı oldu ! çalıştı! Şimdi köşeli bir noob olduğum için aptal hissediyorum. Bunun önemli olmadığını düşündüm. iyi teşekkürler –

+0

Herkes 2 yıl açısal sonra, ben de, bu tür hataları yapar. Endişeye gerek yok :) –

+0

@Maxxim Shoustin önbellek konusunda yardımcı olabilir. Yukarıdaki http alma nesnesi önbelleğe alınmıyor. Iyonik ile uygulama oluşturmak için anular js kullanıyorum. Bu varsayılan önbellekleme, mobil uygulamalarda işe yaramaz mı? –

0

Biz şimdi aynı hatayı karşılaştığı ve çözülmüş

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

Ortak hata :):

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

olmalı: