Angular.js服务工厂$ http.get没有调用我的服务

时间:2015-06-04 14:40:18

标签: javascript angularjs

我正在尝试在服务工厂中获取数据。没有发生。它执行了代码。但是没有发生。不知道为什么?

enter image description here

这是我的服务代码:



'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();
  }
});




我也没有得到错误。

2 个答案:

答案 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/