我正在创建一个自定义服务,它正在工作,正在函数服务中返回数据,问题是当我在 Controller 中调用它时,它返回“未定义”。
服务:
var toDoListServices = angular.module('toDoListServices', []);
toDoListServices.factory('DataTasksService', function($http){
return {
getTasks: function(){
$http.get('js/data.json').success(function(data){
return data;
})
}
}
});
Controller :
var toDoListController = angular.module('toDoListController', []);
toDoListController.controller('ListController', ['$scope', 'DataTasksService', function($scope, DataTasksService){
$scope.tasks = DataTasksService.getTasks();
}]);
应用程序.js:
var myApp = angular.module('myApp', [
'ngRoute',
'toDoListController',
'toDoListServices'
]);
最佳答案
getTasks
不返回任何内容。 success
内的返回不会执行任何操作。
您需要返回$http
promise 。
尝试
toDoListServices.factory('DataTasksService', function($http){
return {
getTasks: function(){
// return the promise
return $http.get('js/data.json');
}
}
});
在 Controller 中:
DataTasksService.getTasks().then(function(response){
$scope.tasks = response.data;
});
关于javascript - 自定义服务返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38557647/