我注入到這一點我控制器模塊:服務工廠不能正常工作
var services = angular.module('services', []);
services.factory('jsonManager', ['$http', function($http) {
return{
loadData: loadData
}
function loadData(){
$http({
method: 'GET',
url: 'data/2015_data.json'
}).then(function successCallback(response) {
return response.data;
}, function errorCallback(response) {
return response.err;
});
}
}]);
...它不工作!我在控制器上這樣使用它,檢查它:
var ctrls = angular.module('controllers', ['services']);
ctrls.controller('overviewController', ['jsonManager', '$scope',
function(jsonManager, $scope){
$scope.load = function(){
var datos = jsonManager.loadData();
console.log(datos);
$scope.gastos = datos.gastos.data;
$scope.ganancias = datos.ganancias.data;
}
我省略了一些代碼從我的控制器;範圍對象正常工作。問題是,我收到一個錯誤,告訴我在第55行和第56行中「datos」未定義。爲什麼會發生這種情況?
不必返回從什麼'loadData()' – Rhumborl
你試圖從異步調用返回。檢查此線程http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call –