Tôi gặp sự cố khi nhận dữ liệu từ dịch vụ được đưa vào chế độ xem của tôi. Tôi đã một dịch vụ được định nghĩa như vậyAngularJS Tải dữ liệu từ dịch vụ
app.factory('nukeService', function($rootScope, $http) {
var nukeService = {};
nukeService.nuke = {};
//Gets the list of nuclear weapons
nukeService.getNukes = function() {
$http.get('nukes/nukes.json')
.success(function(data) {
nukeService.nukes = data;
});
return nukeService.nukes;
};
return nukeService;
});
và điều khiển của tôi
function NavigationCtrl($scope, $http, nukeService){
/*$http.get('nukes/nukes.json').success(function(data) {
$scope.nukes = data;
});*/
$scope.nukes = nukeService.getNukes();
}
Nếu tôi sử dụng $ http.get từ bộ điều khiển dữ liệu populates tốt, tuy nhiên, nếu tôi cố gắng gọi dữ liệu từ dịch vụ, tôi không nhận được gì. Tôi hiểu rằng truy vấn không đồng bộ nhưng tôi gặp khó khăn trong việc hiểu cách điền biến $ scope khi dữ liệu được trả về. Tôi có thể sử dụng $ rootscope để phát sóng một sự kiện và lắng nghe nó trong bộ điều khiển nhưng điều này dường như không đúng cách để thực hiện điều này. Tôi thực sự sẽ đánh giá cao bất kỳ lời khuyên nào về cách làm điều này một cách chính xác.
Đó làm việc nhưng tôi có thể hỏi tại sao? Tôi giả định rằng nó có cái gì để làm với .data là một container cho dữ liệu json thay vì cố gắng để vượt qua nó trực tiếp? Btw, cảm ơn bạn đã trả lời nhanh chóng! – jamesamuir
nếu đang hoạt động, vui lòng đánh dấu câu trả lời là đã chấp nhận –
được đánh dấu là đã trả lời. cám ơn vì đã giải thích. – jamesamuir