angularjs - 在服务中返回已解析的 $resource

标签 angularjs angularjs-scope angularjs-service angular-promise

我是编写服务的新手。我正在我的工厂调用一个调用一系列操作的方法。

1) 从数据库中获取数据 2) 等待 $promise resolve 然后比较 & 过滤结果 3) 返回新的过滤列表

当我注销 $scope.new_list 时,我得到的只是一个空对象。有人可以帮我解决我做错的事吗?

  people.factory('uniqueContacts', ['apiResource', function(apiResource) {
    function getDB() {
         return apiResource.query({api_resource:'people'})
  }
  function generateList(newlistdata){
    getDB().$promise.then(function(result){

           newlist = _.difference(newlistdata, result);
         })
          return new_list;
    });
  }
    return{
      buildList: function(newlistdata){
        return generateList(newlistdata);
      }
    }
  }]);


//in my controller
  $scope.new_list = uniqueContacts.buildList(newlistdata);
  console.log($scope.new_list) // undefined

最佳答案

您的服务函数应从成功返回 new_list

getDB().$promise.then(function(result){
       newlist = _.difference(newlistdata, result);
       return new_list;
     })
});

Controller

 uniqueContacts.buildList(newlistdata).then(function(new_list){
   $scope.new_list = new_list;
 });

关于angularjs - 在服务中返回已解析的 $resource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30489805/

相关文章:

javascript - AngularJS 用户界面路由器 : how to resolve typical data globally for all routes?

AngularJS:在 ng-repeat 生成的范围中设置变量

javascript - 如何在浏览器关闭时清除本地存储

javascript - 观察 $localStorage 的变化

javascript - $scope 不更新变化

javascript - AngularJS,这种使用服务的方式好吗?

javascript - 关于在同一 View 中构造和渲染不同对象的建议

javascript - 将ng-class应用于angularjs中的项目数组

javascript - 对于 Angular 谷歌地图,我希望只能从绘图模式中绘制折线,而不是矩形

angularJS Controller 第一次不加载