asp.net核心<environment>等同于angular2?

The*_*ude 0 asp.net asp.net-core angular

在asp.net核心中,我可以使用<environment>标签有条件地在我的布局html页面中包含css/js :

<environment names="Development,Staging">
    <script type="text/javascript" href="js/debug.js"></script>
    <link rel="stylesheet" type="text/css" href="css/style.css" />
</environment>

<environment names="Production">
    <link rel="stylesheet" type="text/css" href="css/style.min.css" />
</environment>
Run Code Online (Sandbox Code Playgroud)

我怎样才能在角度2中实现这一点?我正在谈论的css/js文件是站点范围的,而不是特定于组件的

(PS.我是角度2的新手)

San*_*ket 6

如果您使用的是angular2 CLI,那么您可以使用enironment.ts.此文件中指定的属性将在整个应用程序中可用.

您可以创建多个这样的环境 -

在此输入图像描述

在组件导入默认环境文件,如下 -

import { environment } from '../../environments/environment';
Run Code Online (Sandbox Code Playgroud)

从像这样的平台浏览器导入DOCUMENT-

import { DOCUMENT } from '@angular/platform-browser';
Run Code Online (Sandbox Code Playgroud)

注入组件(例如主AppComponent),

constructor (@Inject(DOCUMENT) private document) { }
Run Code Online (Sandbox Code Playgroud)

使用环境条件并应用这样的动态样式表 -

if(environment.EnvName === 'prod') {
        this.document.getElementById('theme').setAttribute('href', 'prod.css');
}
else {
        this.document.getElementById('theme').setAttribute('href', 'dev.css');
}
Run Code Online (Sandbox Code Playgroud)

Angular CLI负责在构建过程中为每个环境使用哪个文件.

这是您如何在一次构建时指定环境 -

ng build --env=prod
Run Code Online (Sandbox Code Playgroud)

希望这有助于您的用例.