angular.module('App').factory('API', ['someAPI', function(someAPI){
var service = {};
service.loadInfo= loadInfo;
return service;
function loadInfo(id) {
var list = [];
var items= [];
someAPI.list.get({id: id}).$promise.then(function (result) {
items= result;
if (items.length === 0) {
items= 'No results';
} else {
for (var i=0; i<items.length; i++) {
list.push(items[i].name);
}
}
console.log('List:' + list); **//This print out 'List: a, b, c, d' in console**
})
console.log('List:' + list); **//This print out nothing**
return list;
}
}
]);
//Controller
angular.module('App').controller('ProductCtrl', function($scope, API) {
$scope.loadInfo = function (id) {
$scope.list = API.loadInfo(id);
console.log($scope.list); // This print out undefined
}
}
这可能是一个愚蠢的问题,在我的服务中,可以访问'someAPI'函数中的变量,但控制器会得到一个未定义的值。感谢任何机构能解释我。谢谢!Angularjs返回值给控制器
是不是'API.loadInfo(id)'而不是'someAPI.loadInfo(id)'? – Lex
我的服务中使用了另一个API,名称是一些API。 – James
你可以添加任何小提琴/ Plnkr? –