javascript - 如何修改 Angular 服务中的响应(获取)函数?

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

最佳答案

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

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

在 Controller 中你必须执行以下操作:

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

关于javascript - 如何修改 Angular 服务中的响应(获取)函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40248962/

相关文章:

javascript - 更新 $scope 时 Angular div 不更改文本

javascript - 条件中可能的异步调用

javascript - Test Cafe - 单击使用客户端功能不可见的链接时出错

javascript - 如何在 CouchDB 中创建 "like"过滤器 View

javascript - 如何检查函数是否执行

javascript - AngularJS - ng-show 在对象加载时显示内容

javascript - 将 HTML/CSS 元素转换为可重用的 AngularJS 指令?

angularjs - Angular-ui datepicker datepicker 的初始状态未按 datepicker-popup 格式化

javascript - 使用 JavaScript 隐藏/显示按钮 Nav onClick

javascript - jQuery mobile - 将页面拆分为不同的文件