我也有 ZF2 背景,想要这种功能。我不能保证这是实现这一目标的“惯例”,但它非常适合我和我的情况。
简而言之,我使用 JSON 配置文件和咕噜常量 https://github.com/werk85/grunt-ng-constant(需要Grunt http://gruntjs.com/ obvs..)
My ngconstant
配置在我的Gruntfile.js
看起来像这样:
ngconstant: {
options: {
constants: {
config: grunt.file.readJSON('config/config.global.json')
},
name: 'constants',
dest: 'public/js/src/config.js',
wrap: '/* global angular */\n\n(function ()\n{\n\t\'use strict\';\n\t\n\t{%= __ngModule %}\n\t\n})();\n'
},
dev: {
constants: {
config: grunt.file.readJSON('config/config.dev.json')
}
},
live: {
constants: {
config: grunt.file.readJSON('config/config.live.json')
}
}
}
所有文件的位置取决于您..但其理论是config.global.json
是所有默认配置所在的位置。然后取决于你是否跑步ngconstant:live
or ngconstant:dev
它将把相应的配置与全局合并并覆盖任何重叠。
这会将配置保存到新的 Angularconstant
, public/js/src/config.js
,然后我可以将其注入到我想要的任何服务/控制器中。
/**
* My Controller
*/
angular
.module('ctrls')
.controller('myCtrl', myCtrl);
/**
* @param $scope
* @param config
*/
function myCtrl($scope, config)
{
$scope.someConfig = config.someConfigValue;
}