css - Angular Renderer2 无法添加类
问题描述
addClass
渲染器的方法在元素具有绑定类的情况下不起作用
一些 HTML
<div addClassDir class="my-class-{{smth}}"></div>
里面addClassDir
ngOnInit() {
this.renderer.addClass(this.elementRef.nativeElement, 'new-class');
}
我知道这class="my-class-{{smth}}"
不是 Angular 的方式,但我不知道人们如何使用我的指令。无论如何它应该工作,但它没有。最正确的方法是什么?
解决方案
很少有正确的方法可以做到这一点。这取决于你想要实现什么。
- HostBinding 指令 https://angular.io/api/core/HostBinding
export class MyComponent {
@HostBinding('class.valid') get valid() { return this.control.valid; }
@HostBinding('class.my-class') myClass = true;
@HostBinding('class') class = 'box';
}
<some-element [ngClass]="'first second'">...</some-element>
<some-element [ngClass]="['first', 'second']">...</some-element>
<some-element [ngClass]="{'first': true, 'second': true, 'third': false}">...</some-element>
<some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element>
<some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>
- 属性绑定
<div [class.active]="isActive">
...
</div>
推荐阅读
- python - python 我可以将数据框中的字符串特征更改为 int (1 和 0)吗?
- r - mgcv中的循环自适应样条
- html - 如何按边框居中表格
- installation - Wix Burn EnableFeatureSelection
- node.js - 如何让消费者在nodejs中自动订阅动态创建的主题
- javascript - 在模态中单击打开图像
- r - 计算预测第i个值时删除第i个观测值后的误差平方和
- shiny - textAreaInput 不适用于 fileInput
- ios - 从扩展 Swift 调用时从 superView 中删除 Xib
- sql - SQL 谜题(根据给出的值找到正确答案)