等待服务器数据以初始化服务

时间:2016-04-18 14:32:17

标签: angularjs asynchronous

我想创建一个角度服务,当第一次加载应用程序时,将从服务器获取数据,然后我将能够从本地服务对象查询数据。以下是我尝试这样做的方法:

angular.module('my.services').factory('Properties', function ($http) {

  var properties = $http.get("/properties");

  return {
    get: function (property) {
      // Logic here
      console.log(property);
    }
  }
});

问题是 - $http.get()是异步的,为了实现我想要做的事情,我必须同步使用它。有没有办法用“原生”AngularJS做到这一点?或者我必须使用XHR调用吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试做类似的事情

angular.module('my.services').factory('Properties', function ($http) {

  var propertiesPromise = $http.get("/properties");

  return {
    get: function (property) {
      propertiesPromise.then(function(properties){
        console.log(properties);
      });
    }
  }
});