在当前模块的服务中使用来自另一个模块的常量

时间:2015-06-12 14:00:05

标签: angularjs

我想将所有常量存储在一个地方,并将此模块注入我需要的任何地方。

constant.js

(function(){

        var constantModule = angular.module('Constants',[]);
        constantModule.constant('AppDefaults',{
            DEFAULT_PAGE_SIZE : 100
        });

    }());

并在此处的另一个模块中使用此常量:

     var app = angular.module('app',['Constants']);
     app.controller('AppController',function($scope,AppService){

     $scope.someMethod = function() {
       var response = AppService.doSomething();
     }

    });
    app.service('AppService',['$http', '$q','Constants',function($http,$q,Constants){

  return({
   doSomething:doSomething
  });

function doSomething() {
  method: "post",
        url: "/foo/bar",
        data: {
         pageSize: Constants.AppDefaults.DEFAULT_PAGE_SIZE
        }
}
}]);

但是我不能将Constants注入服务中。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

无法注入模块。但是,常量可以作为服务:

app.service('AppService',['$http', '$q', 'AppDefaults', function($http, $q, AppDefaults) {

    return({
        doSomething:doSomething
    });

    function doSomething() {
        return $http({
            method: "post",
            url: "/foo/bar",
            data: {
                pageSize: AppDefaults.DEFAULT_PAGE_SIZE
            }
        });
    }
}]);