我目前正在学习Angular 2.我了解如何使用Angular Renderer
设置ElementStyle
,但现在我想使用Renderer
方法:
setElementClass(renderElement: any, className: string, isAdd: boolean) : void
我的问题是如何将CSS类导入到我的属性指令中? 我是否必须将我的CSS类转换为JSON?
答案 0 :(得分:7)
答案 1 :(得分:5)
如何使用Renderer和ElementRef将css类添加到元素的示例。
@Directive({
selector: '[whatever]'
})
class WhateverDirective {
constructor(renderer: Renderer, el: ElementRef) {
renderer.setElementClass(el.nativeElement, 'whatever-css-class', true);
}
}
whatever-css-class在css文件中定义,在html
中引用答案 2 :(得分:0)
这是另一种实现方式,但对我来说更容易理解。
你让我知道你的想法
import { Directive, Input} from '@angular/core';
@Directive({
selector: '[whatever]',
host: {
// These are like ngClass class condition values
'[class.custom-class1]': 'true', // Default class for example
'[class.custom-class2]': 'foo === "expectedValue"', // Predicate1
'[class.custom-class3]': 'foo !== "expectedValue"', // Predicate2
},
})
export class WhateverDirective {
@Input() foo: string;
}