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

时间:2017-05-29 04:37:15

标签: asp.net angular asp.net-core

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

&#13;
&#13;
<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>
&#13;
&#13;
&#13;

如何在角度2中实现此目的?我所谈论的css / js文件是站点范围的,而不是特定于组件的

(PS。我是角度2的新手

1 个答案:

答案 0 :(得分:6)

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

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

enter image description here

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

import { environment } from '../../environments/environment';

从平台浏览器导入DOCUMENT,如下所示 -

import { DOCUMENT } from '@angular/platform-browser';

注入组件(例如主AppComponent),

constructor (@Inject(DOCUMENT) private document) { }

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

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

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

这是您在一次构建时指定环境的方法 -

ng build --env=prod

希望这对您的用例有所帮助。