【发布时间】:2018-12-21 13:40:36
【问题描述】:
我正在尝试在我的 Angular 应用程序中包含两个样式 URL,
我尝试了其他几个类似的问题,但答案对我不起作用。我不知道如何解决。
我想要实现的是根据if条件在两种样式之间切换
我为什么要这样做:这是因为应用程序应该支持两种语言,这需要 RTL 和 LTR 样式文件用于同一组件,,
这样的问题可以处理吗??
【问题讨论】:
标签: angular angular5 angular2-template angular6
我正在尝试在我的 Angular 应用程序中包含两个样式 URL,
我尝试了其他几个类似的问题,但答案对我不起作用。我不知道如何解决。
我想要实现的是根据if条件在两种样式之间切换
我为什么要这样做:这是因为应用程序应该支持两种语言,这需要 RTL 和 LTR 样式文件用于同一组件,,
这样的问题可以处理吗??
【问题讨论】:
标签: angular angular5 angular2-template angular6
为 .html 中的 [class] 指定一些函数
<span [class]="getStyleClass()">ABCD</span>
然后在你的 .ts 中为你的 getStyleClass() 添加一些逻辑
getStyleClass() {
return this.value > this.anotherValue?"classOne":"classTwo";
}
【讨论】:
有 2 个 css 文件:src/assets/style1.css 和 src/assets/style2.css
第 1 步:添加一个带有 ID 的链接位于 index.html 文件的头部
<html>
<head>
<link href="" id="mycss" rel="stylesheet">
</head>
<body>
<my-app></my-app>
</body>
</html>
第 2 步:使用以下 typescript 并使用您自己想要的逻辑进行修改
import { Component, Inject } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
files = ["assets/style1.css","assets/style2.css"]
constructor(@Inject(DOCUMENT) private document) {}
toggle() {
var oldlink = this.document.getElementById("mycss");
var newlink = this.document.createElement("link");
newlink.setAttribute("rel", "stylesheet");
newlink.setAttribute("type", "text/css");
newlink.setAttribute("href", this.files[1]);
this.document.getElementsByTagName("head").item(0).replaceChild(newlink, oldlink);
}
}
【讨论】: