我也來自ZF2的背景,並希望這種功能。我不能保證這是實現這一目標的'慣例',但它對我和我的情況完全適用。
總之我使用的JSON配置文件和grunt-ng-constant組合(需要Grunt obvs ..)
我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
或ngconstant:dev
它將合併相應的配置與全局並覆蓋任何重疊。
這將配置保存到一個新的角constant
,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;
}