Angularjs:如何从Controller将数据传递给自定义服务

时间:2015-09-01 16:03:46

标签: javascript html angularjs

我目前正在开发一个涉及从服务器获取数据的项目。数据通过自定义服务传递给主控制器,该服务使用从服务器获取数据的自定义指令。您可以在下面找到代码:

/* Service requestObjects */
app.factory('requestObjects', ['customDirective', function(customDirective){ 
  return {
    getObjects: function (){
      return customDirective.call('address', {
        // parameters for the call
        pageIndex: 1,
        pageSize: 20
      }).then(function (list) {
        return list;
      })
    }
  }
}])

/* Controller */

app.controller ('MainController', ['$scope', 'requestObjects', function($scope, requestObjects){
  requestObjects.getObjects().then(function (data){
    $scope.objectList = data;
    $scope.$apply();
  })
  $scope.addPage = function(){
    $scope.objectList.currentPageIndex += 1;
  }
}])

HTML:

<button ng-click="addPage()">Load more objects</button>

HTML文件有一个按钮,当单击时将currentPageIndex增加1,但页面上没有加载其他对象。 反正有没有告诉服务我希望下一页有下20个对象,并在页面上点击按钮时加载它们?

1 个答案:

答案 0 :(得分:0)

为您的服务添加setter功能:

setObjects: function(...) { ... }

然后在控制器中调用requestObject.setObjects(...)以传入您的数据。如何保存以及如何处理传入的数据将取决于您在服务中setObjects的实施情况。