Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Angular 2项目中,哪里可以放置应用程序范围的配置_Angular - Fatal编程技术网

在Angular 2项目中,哪里可以放置应用程序范围的配置

在Angular 2项目中,哪里可以放置应用程序范围的配置,angular,Angular,在使用CLI和Webpack的Angular2项目中,我可以使用什么方法放置公共配置数据和参数,例如一些api键或api URL?许多组件和服务将使用这些参数 在专门的服务中? 在yaml或json中,通过某种东西再次解析为服务?? 在导出对象的模块中? 我们的应用程序越来越大,我试图找到一种解决方案,使应用程序尽可能轻巧高效。您不需要使用全面的服务或模块来存储配置数据 您可以将配置信息放入常量中,并通过依赖项注入公开变量: 常量设置={ apiUrl:'someUrl', apiKey:“so

在使用CLI和Webpack的Angular2项目中,我可以使用什么方法放置公共配置数据和参数,例如一些api键或api URL?许多组件和服务将使用这些参数

在专门的服务中? 在yaml或json中,通过某种东西再次解析为服务?? 在导出对象的模块中?
我们的应用程序越来越大,我试图找到一种解决方案,使应用程序尽可能轻巧高效。

您不需要使用全面的服务或模块来存储配置数据

您可以将配置信息放入常量中,并通过依赖项注入公开变量:

常量设置={ apiUrl:'someUrl', apiKey:“someKey”, // ... }; //然后,在AppModule中,声明DI的值 @NGD模块{ 供应商:[ {提供:'SETTINGS',useValue:SETTINGS}, // ... ] } 然后,无论何时需要访问服务或组件中的配置…,请插入它:

从@angular/core导入{Inject}; 导出类MyComponent{ constructor@Inject“设置”私人设置:任何{ } }
这种方法的优点是,您可以根据环境或是否正在运行单元测试等使用不同的设置。

这取决于构建系统。如果您在本地或生产环境中运行应用程序,我假设您的API URL不同。你使用什么,SystemJS,Webpack?我们确实有两个环境:dev,prod。我们使用Webpack是因为它是一个Angular CLI项目。更新了问题。我不认为有一个共同的方法来解决这个问题。有一个WebpackStarter项目:它提供了一种在构建时配置环境变量的机制。看看webpack.dev.js和webpack.prod.js中的元数据对象。也许你可以偷他们的东西;谢谢