반응형

다이나믹하게 표현하는 방법 입니다.


클래스를 이용한 방법. (css, html)


[ngClass]를 이용하여 스타일을 적용 시킬 수 있습니다.


CSS

.even {
color: #0000FF;
}


HTML

<li
class="list-group-item"
[ngClass]="{even: number %2 == 0}"
*ngFor="let number of Numbers">
{{number}}
</li>


{className: operation}

연산된 값은 false | ture 입니다.


스타일을 이용한 방법. (html)


[ngStyle]을 사용한 방법


HTML

<li
class="list-group-item"
[ngClass]="{even: number %2 == 0}"
[ngStyle]="{backgroundColor: number %2 === 0 ? 'yellow' : 'transparent'}"
*ngFor="let number of Numbers">
{{number}}
</li>


{propertyName: operation}

연산된 값은 #FFFF00와 같이 입력되어야 합니다.

 .even-bg {

background-color: #FFFF00;
}


Attribute Directive 를 이용한 방법. (ts, html)


ts파일을 생성하여 간편하게 사용할 수 있습니다.


HTML 태그의 속성 처럼 사용이 가능합니다.


ts

import { Directive, ElementRef, OnInit } from '@angular/core';
@Directive({
selector: '[appBasicHighlight]'
})
export class BasicHighlightDirective implements OnInit {
constructor(private elementRef: ElementRef) {
}

ngOnInit() {
this.elementRef.nativeElement.style.backgroundColor = 'green';
}
}


HTML

<p appBasicHighlight>Style me with basic directive!</p>


하지만 이 방법은 native 엘레먼트에 직접적으로 상호작용(interact)할 수 없으므로 renderer2를 사용을 권장합니다.


import { Directive, Renderer2, OnInit, ElementRef } from '@angular/core';

@Directive({
selector: '[appBetterHighlight]'
})
export class BetterHighlightDirective implements OnInit {

constructor(private elRef: ElementRef, private renderer: Renderer2) { }

ngOnInit() {
this.renderer.setStyle(this.elRef.nativeElement, 'background-color', 'blue')
}
}


반응형

'프로그래밍 > Angular' 카테고리의 다른 글

Providers - Hierarchical Injector  (0) 2019.06.16
custom attribute Directive  (0) 2019.06.09
FormsModule With ViewChild  (0) 2018.09.05
Component- Event  (0) 2018.08.12
Input decoretor  (0) 2018.08.12

+ Recent posts