Nasıl Angular.js farklı ortamlarda yapılandırabilirim?
Nasıl farklı ortamlar için yapılandırma değişkenler/sabitler başarıyorsun?
Bu bir örnek olabilir:
API localhost:7080/myapi/
, ama Git sürüm kontrol altında aynı kod üzerinde çalışan arkadaşım ulaşılabilir benim rest API localhost:8099/hisapi/
onun Tomcat üzerine yığdı.
Böyle bir şey var diyelim ki :
angular
.module('app', ['ngResource'])
.constant('API_END_POINT','<local_end_point>')
.factory('User', function($resource, API_END_POINT) {
return $resource(API_END_POINT 'user');
});
Nasıl API uç noktası, ortama bağlı olarak doğru değeri dinamik olarak enjekte edebilirim?
Ben PHP genellikle config.username.xml
bir dosya ile bu tür şeyler, temel yapılandırma dosyası (config.xml yerel çevre yapılandırma dosyası kullanıcı adı ile tanınan ile birleştirilmesi. Fakat JavaScript bu tür bir şey yönetmek için nasıl bilmiyorum?
CEVAP
Konuya biraz geç kaldım ama eğer Grunt kullanıyorsanız grunt-ng-constant
ile büyük başarı elde ettik.
Benim ngconstant
config section Gruntfile.js
gibi görünüyor
ngconstant: {
options: {
name: 'config',
wrap: '"use strict";\n\n{%= __ngModule %}',
space: ' '
},
development: {
options: {
dest: '<%= yeoman.app %>/scripts/config.js',
},
constants: {
ENV: 'development'
}
},
production: {
options: {
dest: '<%= yeoman.dist %>/scripts/config.js',
},
constants: {
ENV: 'production'
}
}
}
ngconstant
kullanan görevleri benziyor
grunt.registerTask('server', function (target) {
if (target === 'dist') {
return grunt.task.run([
'build',
'open',
'connect:dist:keepalive'
]);
}
grunt.task.run([
'clean:server',
'ngconstant:development',
'concurrent:server',
'connect:livereload',
'open',
'watch'
]);
});
grunt.registerTask('build', [
'clean:dist',
'ngconstant:production',
'useminPrepare',
'concurrent:dist',
'concat',
'copy',
'cdnify',
'ngmin',
'cssmin',
'uglify',
'rev',
'usemin'
]);
Bu yüzden grunt server
çalışan gibi görünüyor app/scripts/
17 *bir dosya oluşturur
"use strict";
angular.module("config", []).constant("ENV", "development");
Son olarak, ne olursa olsun modülleri lazım: bağımlı ilan ediyorum
// the 'config' dependency is generated via grunt
var app = angular.module('myApp', [ 'config' ]);
Şimdi benim sabitler gereken yerlerde bağımlılık enjekte edilebilir. E. g.,
app.controller('MyController', ['ENV', function( ENV ) {
if( ENV === 'production' ) {
...
}
}]);
Nasıl normal bir sanal makine Docker f...
Aynı dalda iki farklı işliyor arasında...
Nasıl iki farklı dalları dosyaları kar...
Nasıl MAX(Sütun değeri), SQL başka bir...
Soket seçenekleri SO_REUSEADDR ve SO_R...