从Angular工厂的HTTP返回响应数据

sub*_*ero 5 factory angularjs

.factory('Api', function($http) {
         var API = "http://127.0.0.1:4567/";
         return {
             get: function(method) {
                 return $http.get(API + method).success(function(result) {
                     return result;
                 });
             }
         }
     }
Run Code Online (Sandbox Code Playgroud)

然后

console.log(Api.get("MAppData"));
Run Code Online (Sandbox Code Playgroud)

返回

Object {then: function, success: function, error: function}
Run Code Online (Sandbox Code Playgroud)

为什么不返回结果(响应数据)?

zs2*_*020 9

$http返回一个promise,你需要链接.then()来获取这样的数据:

Api.get("MAppData").then(function(response){
    var data = response.data;
});
Run Code Online (Sandbox Code Playgroud)

  • @subzero你可以切换到使用`$ resource`,然后你应该能够返回`$ resouce`对象,它是promise的包装器,然后angularjs可以自动将它绑定到视图. (2认同)