2016-04-21 102 views
0

在ZF2中工作時,我們使用的配置文件可能因開發人員和開發人員以及生產環境和登臺環境而異。它非常方便,因此我想爲Angular 2複製這個。Angular 2 - 如何使用配置文件

它在ZF2中的工作原理:我們有一個config文件夾,其中configs命名爲:settings.local.php和settings.global.php。然後我們使用一個gitignore文件來忽略任何含有本地內容的文件。

我想做一些與Angular 2類似的事情,並不是百分之百確定最好的方法去做這件事。

角形2我在想有config文件夾中,然後使用服務來獲取配置文件...

是否有在角2這樣的一個約定?

回答

0

我也來自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:livengconstant: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; 
} 
相關問題