2015-10-03 20 views
6

Sau khi tham khảo Link này, tôi đang cố gắng lấy dữ liệu JSON vào dịch vụ góc cạnh của mình.

dịch vụ:

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


Bộ điều khiển:

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

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

}) 


Sau khi thực hiện giao diện điều khiển này nói '$ q.defer không phải là một functi trên '.

Sự cố ở đây là gì? Hãy giúp tôi ...!! Là người mới đến Angular Js nên tha thứ nếu có điều gì đó sai.

+0

Bạn không nên sử dụng '$ q.defer', chỉ cần trả lại' $ http.get (..) '. Ngoài ra, 'success' không được dùng nữa - hãy sử dụng' then' để thay thế. –

+0

cảm ơn vì điều đó! :) –

+0

Một điều thú vị mà mọi người đặt câu hỏi của họ trên Stackoverflow, tôi chắc chắn câu hỏi này và câu trả lời cũng giải quyết được nhiều vấn đề của nhiều người. Cảm ơn vì điều này – M98

Trả lời

21

Bạn có định nghĩa dịch vụ sai:

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

nên là:

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

sai lầm phổ biến :)

+0

Cảm ơn rất nhiều! Nó thật nhanh ! đã làm việc ! tôi cảm thấy ngu ngốc khi trở thành một noob trong góc cạnh bây giờ. tôi nghĩ điều đó sẽ không thành vấn đề. cũng nhờ –

+0

Mọi người đều mắc lỗi kiểu này, tôi cũng vậy, sau 2 năm góc cạnh. Đừng lo lắng :) –

+0

@Maxxim Shoustin bạn có thể trợ giúp với bộ nhớ đệm không. đối tượng http nhận được ở trên không được lưu trữ. Tôi đang sử dụng js hình để xây dựng ứng dụng với ion. bộ nhớ đệm mặc định này sẽ không hoạt động trong ứng dụng dành cho thiết bị di động? –

0

Chúng tôi phải đối mặt với lỗi tương tự và giải quyết bây giờ:

Vui lòng tham khảo tệp phiên bản góc 1.6.1, vì phiên bản góc cũ hơn cung cấp lỗi ở trên.

Các vấn đề liên quan