如何为整个应用替换 angular 主题 CSS 样式表?
how to replace angular theme CSS stylesheet for whole app?
首先,我无法通过 index.html 导入 css,并且出现 MIME 类型错误:
enter image description here
拒绝应用来自“http://localhost:4200/css/pink-bluegrey.css”的样式,因为它的 MIME 类型 ('text/html') 不是受支持的样式表 MIME 类型,并且启用了严格的 MIME 检查。
如果我尝试通过 angular.json 导入它,那么我无法插入 ID 标签 id="themeAsset".
我之所以要添加 id 是因为我想从 https://material.angular.io/guide/theming
函数更改主题(主题名称){
document.getElementById('themeAsset').href = /path/to/my/${themeName}.css
;
}
所以我可以通过单击而不是将 类 添加到每个组件
来更改整个应用程序样式的样式
工作 Stackblitz :- https://stackblitz.com/edit/angular-jrkmhn
我将 css 放在资产文件夹中,即 myStyles.css
CSS :-
.myDiv {
background-color: black;
}
index.html
<link id="myLink">
<my-app>loading</my-app>
app.component.html
<div class="myDiv">Css Will Load</div>
<button style="margin-top: 2em" (click)="changeTheme('')">Change Theme</button>
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
name = 'Angular';
changeTheme(themeName) {
var elem = document.getElementById('myLink');
elem.setAttribute('href','./assets/myStyles.css');
elem.setAttribute('rel','stylesheet');
elem.setAttribute('type','text/css');
}
}
首先,我无法通过 index.html 导入 css,并且出现 MIME 类型错误: enter image description here 拒绝应用来自“http://localhost:4200/css/pink-bluegrey.css”的样式,因为它的 MIME 类型 ('text/html') 不是受支持的样式表 MIME 类型,并且启用了严格的 MIME 检查。
如果我尝试通过 angular.json 导入它,那么我无法插入 ID 标签 id="themeAsset".
我之所以要添加 id 是因为我想从 https://material.angular.io/guide/theming
函数更改主题(主题名称){
document.getElementById('themeAsset').href = /path/to/my/${themeName}.css
;
}
所以我可以通过单击而不是将 类 添加到每个组件
工作 Stackblitz :- https://stackblitz.com/edit/angular-jrkmhn
我将 css 放在资产文件夹中,即 myStyles.css
CSS :-
.myDiv {
background-color: black;
}
index.html
<link id="myLink">
<my-app>loading</my-app>
app.component.html
<div class="myDiv">Css Will Load</div>
<button style="margin-top: 2em" (click)="changeTheme('')">Change Theme</button>
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
name = 'Angular';
changeTheme(themeName) {
var elem = document.getElementById('myLink');
elem.setAttribute('href','./assets/myStyles.css');
elem.setAttribute('rel','stylesheet');
elem.setAttribute('type','text/css');
}
}