我创建一个自定义服务,它正在工作,正在函数服务中返回我的数据,问题是当我在控制器中调用它时,它返回我'未定义'。
服务:
var toDoListServices = angular.module('toDoListServices', []);
toDoListServices.factory('DataTasksService', function($http){
return {
getTasks: function(){
$http.get('js/data.json').success(function(data){
return data;
})
}
}
});
控制器:
var toDoListController = angular.module('toDoListController', []);
toDoListController.controller('ListController', ['$scope', 'DataTasksService', function($scope, DataTasksService){
$scope.tasks = DataTasksService.getTasks();
}]);
App.js:
var myApp = angular.module('myApp', [
'ngRoute',
'toDoListController',
'toDoListServices'
]);
答案 0 :(得分:2)
getTasks
不会返回任何内容。 success
内的回报什么都不做。
您需要返回$http
承诺。
尝试
toDoListServices.factory('DataTasksService', function($http){
return {
getTasks: function(){
// return the promise
return $http.get('js/data.json');
}
}
});
在控制器中:
DataTasksService.getTasks().then(function(response){
$scope.tasks = response.data;
});