如何修改角度服务中的响应(get)功能?

时间:2016-10-25 20:17:03

标签: javascript angularjs

我想将此功能移至services.js:

News.all().async().then(function(data) {
  $scope.news = data['data']['NewsList'];
});

然后通过此命令在controller.js中调用它:

$scope.news = News.all();

我尝试了很多方法,但它们没有用。

这是我的services.js:

.factory('News', function($http) {
  function returnNews() {
    return {
      async: function() {
        return $http.get('test.json');
      }
    };
  }
  return {
    all: function() {
      return returnNews();
    }
  }
});

1 个答案:

答案 0 :(得分:1)

如果你最后调用News.all(),你会得到一个带有异步属性的对象:{async},我不认为这是你想要的。您可以做的是将回调传递给服务:

.factory('News', function($http) {
  return {
    all: function(callback) {
      return $http.get('test.json').then(callback);
    }
  }
});

在控制器中你必须这样做:

News.all(function(data){
  $scope.news = data
});