【发布时间】:2016-07-09 00:09:57
【问题描述】:
我在我的 AngularJS 应用程序中创建了一个工厂,用于在对列表的一个或多个元素执行删除后从服务器引入刷新的数据。
var myApp = angular.module('app');
myApp.factory('mvListRefresher', function($http) {
return {
refreshCourses : function() {
var list = new Array();
$http.get('/api/courses').then(function(response) {
console.log('got refreshed lists');
console.log(response.data);
list = response.data;
}, function(error) {
console.log('error in retreiving fresh lists');
console.log(error);
});
console.log('Displaying list of courses');
console.log(list);
if(list.length != 0) {
return list;
}
}
}
});
我通过调用在我的一个控制器中调用这个工厂
$scope.courses = mvListRefresher.refreshCourses();
但我得到一个空列表,即我根本没有得到任何返回值。在我的工厂函数中,我观察到这条线
console.log(list);
总是打印出一个空数组,但是行
console.log(response.data);
在成功回调中正确打印出完整的对象列表。我不知道这是怎么回事。我对 AngularJS 的承诺相对较新,它是异步方法和架构。请帮帮我。如果您需要更多信息,我会提供。我已经使用 MEAN 完成了整个应用程序。提前致谢!
【问题讨论】:
标签: javascript angularjs node.js mean-stack