我正在尝试在服务工厂中获取数据。没有发生。它执行了代码。但是没有发生。不知道为什么?
这是我的服务代码:
'use strict';
app.factory('accountService', function($http, $location, $rootScope) {
return {
accounts: function() {
$http.get('http://localhost:29045/AccountOperation.svc/GetAccounts').success(function(data, status, headers, config) {
console.log(status);
var $promise = data;
console.log(data);
}).error(function(data, status, headers, config) {
});
}
}
});

这是我的控制器(从这里调用工厂):
'use strict';
app.controller('accountController', function($scope, accountService, $rootScope) {
$scope.accounts = function() {
accountService.accounts();
}
});

我也没有得到错误。
答案 0 :(得分:3)
在您的帐户功能中,您不会创建承诺或返回任何内容。尝试:
app.factory('accountService', function($http, $location, $rootScope) {
return {
accounts: function() {
return $http.get('http://localhost:29045/AccountOperation.svc/GetAccounts');
}
}
});
这将返回promise,您可以在调用acccount函数的任何地方处理它,或者您可以在函数内创建一个promise并返回它。然后在成功或错误方法内解决或拒绝它。
答案 1 :(得分:0)
我想你必须从工厂回复你的承诺。请查看“承诺与服务”下的以下帖子
http://chariotsolutions.com/blog/post/angularjs-corner-using-promises-q-handle-asynchronous-calls/