如何读取angular模块内部的json配置文件
How to read the json config file inside angular module?
我正在使用typescript编写javascript AngularJS应用程序。此外,我正在使用咕噜声进行建筑。事实上,我已经从ng样板开始了。
现在假设我有一个config.json
文件,如下所示-
{
"app": "abc",
"login": "xyz"
}
我希望我的应用程序中的一些变量是可配置的。所以在某个地方我可以使用类似的东西
var loginUrl : string = "def?pqr="+config.app;
现在,我如何在javascript文件中读取此配置?我正在寻找最佳实践答案。我对grunt build
步骤的替换也很满意。
注意:配置文件存在于客户端本身,即无需单独从服务器加载。
在我的例子中,我使用grunt在角度常数模块中注入一个配置文件(与服务器共享):
使用咕哝预处理:
我有一个配置.tpl.js与:
angular.module('app.config', [])
.constant('appConfig', {
// clientside specific constants
var1 : 'value1',
var2 : [1,2,3],
sharedVars : /* @echo SHARED_VARS */
});
然后,在我的咕哝文件:
preprocess: {
options: {
context: {
SHARED_VARS: grunt.file.read('config.json'),
}
},
config: {
src: 'src/config.tpl.js',
dest: 'src/config.js' // true file generated and loaded in index.html
}
},
这样,您就可以在角度常数模块中注入一个完整的配置文件,或者只选择您想要的变量。
对于客户端代码,您应该只使用$http.get
从服务器获取json文件。假设json文件在/manage/config.json
上是http可访问的,那么您可以执行以下操作:
$http.get('/manage/config.json').then((res)=>{
var config = res.data;
});
$http会自动为您进行json解析。
以下是我所做的
var initInjector = angular.injector(['ng']);
var $http = initInjector.get('$http');
var configModule = angular.module('portalConfig', []);
$http.get('../config/Settings.json').then(
function (response) {
configModule.value('config', response.data);
}
);
然后假设你的应用程序模块是foo,然后是
angular.module('foo',['portalConfig'])
相关文章:
- 从模块内部访问Express装载路径
- 如何使用jasmine节点监视依赖模块内部的方法
- 使用在子模块内部的父模块上定义的常量's配置
- Javascript:Webpack+Typescript+Namespace(内部模块)
- 是JSHint“;已定义“;IIFE模块内部的错误确实有效
- 从函数内部、类内部、模块内部访问 Angular 服务
- 从模块内部引用特定的表单元素
- 从节点模块内部返回嵌套函数
- 节点:需要模块内部功能
- 在打字稿内部模块中使用外部打字稿库
- 在打字稿中隐式引用另一个内部模块
- React 模块内部的条件
- 如何限制节点对内部节点模块的访问
- Jest:找不到要测试的模块内部所需的模块(相对路径)
- Requirejs:等待模块内部的require函数
- Javascript 揭示模块模式 - 这个和内部函数调用
- 如何读取angular模块内部的json配置文件
- NPM不工作(无法找到模块'内部/fs'- nodejs)
- 是否可以将多个内部模块组合到一个外部模块?
- Typescript -内部模块无法导入-意外行为