javascript - Angular1.x如何将某个$http请求抽取成公共代码,以便重复使用?
PHP中文网
PHP中文网 2017-04-11 12:27:57
[JavaScript讨论组]
mainApp.config(function($stateProvider, $urlRouterProvider) {
  //路由配置
  $stateProvider.state('home', {
    url: '/home',
    templateUrl: 'home.html',
    controller : function($scope,$http){

      //获取列表数据的方法 Start.........
      $scope.getHomeData = function(){
        $http({
          url : '/getHomeDataList',
          method : 'POST'
        }).then(function(){
            //请求成功
        },function(){
            //请求失败
        })
      };
      //获取首页数据的方法 End..........
      
    }
  });
});
  • 如上代码定义的,获取列表数据的方法,如何把它独立出来?以便可以在初始化加载、分页、新增以及删除等情况下调用?

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
大家讲道理

把所有接口都封装到service层

angular.module("MyController", [])
    .controller("IndexController", ["$scope", "githubService",                                function($scope, githubService){
        $scope.name = "dreamapple";
        $scope.show = true;
        githubService.getPullRequests().then(function(result){
            $scope.data = result;
        },function(error){
            $scope.data = "error!";
        },function(progress){
            $scope.progress = progress;
            $scope.show = false;
        });
    }]);
 angular.module("MyService", [])
    .factory('githubService', ["$q", "$http", function($q, $http){
        var getPullRequests = function(){
        var deferred = $q.defer();
        var promise = deferred.promise;
        var progress;
        $http.get("https://api.github.com/repos/angular/angular.js/pulls")
        .success(function(data){
            var result = [];
            for(var i = 0; i < data.length; i++){
                result.push(data[i].user);
                progress = (i+1)/data.length * 100;
                deferred.notify(progress);
            }
            deferred.resolve(result);
            })
        .error(function(error){
            deferred.reject(error);
        });
        return promise;
    }

    return {
        getPullRequests: getPullRequests
    };
}]);
阿神

建立service.js,放到里面,用的时候注入就可以了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号