【发布时间】:2020-12-02 18:10:15
【问题描述】:
我想在 TAG Body 的两个课程(浅色和深色)之间切换。
我做了什么?我创建了一个服务:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class ThemeService {
body = document.body;
constructor() { }
changeLight() {
this.body.classList.replace('light', 'dark');
}
changeDark() {
this.body.classList.replace('dark', 'light');
}
}
它按预期工作,但我知道这段代码没有使用最佳实践。
在这两个类之间进行更改的正确方法是什么?
【问题讨论】:
-
如果您不知道最佳做法是什么,您怎么知道这不是最佳做法?
-
看到 body 标签将在您的 Angular 应用程序之外,这是您必须这样做的方式。
-
@RobertHarvey 我知道@ViewChild() 是获取元素的最佳做法,但我没有让它工作。
-
主体不是任何组件的子组件。
-
@AdrianBrand 是的,你是对的!我正在尝试使用指令而不是服务。
标签: html css angular angular10