我想将所有常量存储在一个地方,并将此模块注入我需要的任何地方。
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注入服务中。有办法解决这个问题吗?
答案 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
}
});
}
}]);