也许我只是错误地想到这一点,但我似乎无法找到正确答案:
“如何将API网址注入我的服务?”
特别是在.NET中,我会在.config文件中创建值,并使用转换来转换适当环境的值(debug,QA,PROD),然后注入该值。
对于AngularJS,我唯一能想到的就是使用每个环境的端点创建一个价值服务然后呢? - 或者使用Grunt来改变价值(虽然它如何知道它的环境)。
我对Angular很陌生,所以试图了解不同环境的部署是如何工作的。请注意,Angular站点不与API在同一服务器上托管,因此我无法使用相对路径。
提前致谢
答案 0 :(得分:1)
虽然,这是一个很老的帖子,但我认为有人可能会发现它有用,我有一个类似的架构,我不得不指向网站上的不同API URL,我能够使用以下帖子
http://newtriks.com/2013/11/29/environment-specific-configuration-in-angularjs-using-grunt/
更新
总之,您可以安装环境配置生成器或手动创建这些文件
npm install generator-env-config
并创建配置文件,如果已使用
安装了生成器yo env-config:development
然后在Grunt.js中使用grunt-replace来替换不同的配置文件,就像使用.Net配置文件一样 E.g
replace: {
development: {
options: {
patterns: [{
json: grunt.file.readJSON('./config/environments/development.json')
}]
},
files: [{
expand: true,
flatten: true,
src: ['./config/config.js'],
dest: '<%= yeoman.app %>/scripts/services/'
}]
},
uat: {
options: {
patterns: [{
json: grunt.file.readJSON('./config/environments/uat.json')
}]
},
files: [{
expand: true,
flatten: true,
src: ['./config/config.js'],
dest: '<%= yeoman.app %>/scripts/services/'
}]
},
}
现在如果你运行grunt replace:development
,你应该从开发中获得配置文件
希望这有帮助
答案 1 :(得分:0)
使用grunt-env插件:https://npmjs.org/package/grunt-env
并设置您的配置:
grunt.initConfig({
env : {
options : {
//Shared Options Hash
},
dev : {
NODE_ENV : 'development',
DEST : 'temp'
}
},
'another-task': {}
});
我从这个链接找到答案: