티스토리 뷰
Angular 데이터 바인딩 및 소소한 정리
class binding
<!--다항 클래스 바인딩 -->
<div [class]="표현식"></div>
<!-- 단항 클래스 바인딩 -->
<div [class.myClass]="표현식"></div>
<!-- 다항 클래스 바인딩과 비슷하지만 바인딩 방식인 문자열/배열/객체 3종류로 적용할 수 있다.-->
<!-- 여러개의 클래스를 다채롭게 적용할때 사용 -->
<div [ngClass]="map객체"></div>
style binding
<!-- 단일 스타일 속성을 식의 결과로 설정하는 데 사용되는 바인딩-->
<div [style.myStyle]="표현식"></div>
<!--스타일 값의 단위( units )를 대상의 일부로 지정할 수 있다.-->
<div [style.myStyle.units]="표현식"></div><!-- ex) 아래 단위적용이 어떻게 되는지 유심히 살펴보자 -->
<div [style.fontSize]="30px">first</div>
<div [style.fontSize.px]="30">first</div>
<!--style 어트리뷰트에 바인딩-->
<div [ngStyle]="map객체"></div>
<!-- ex) 아래 isRedColor 의 값은 boolean값이라 가정한다.-->
<div [ngStyle]="{fontSize:'30px', 'margin.px':100, color:isRedColor? 'red':'green' }">first</div>
데이터 바인딩 주의사항
1. id 어트리뷰트와 id 프로퍼티는 1:1 매핑한다.
2. class 어트리뷰트는 classList 프로퍼티로 변환된다.
3. td 요소의 colspan 어트리뷰트의 경우 매핑하는 프로퍼티가 존재하지 않는다.
4. textContent 프로퍼티의 경우 대응하는 어트리뷰트가 존재하지 않는다.
5. input 요소의 value 어트리뷰트는 value 프로퍼티와 1:1 매핑하지만 서로 다르게 동작한다.
ngTemplateOutlet 디렉티브는 지정된 위치에서 콘텐츠 블록을 반복하는 데 사용되며, 다른 위치에서 동일한 콘텐츠를 생성해야하고 중복을 방지하려는 경우에 유용.
<ng-template #titleTemplate let-text="title">
<h4 class="p-2 bg-success text-white">{{text}}</h4>
</ng-template>
<ng-template [ngTemplateOutlet]="titleTemplate"
[ngTemplateOutletContext]="{title: 'Header'}">
</ng-template>
<div class="bg-info p-2 m-2 text-white">
There are {{getProductCount()}} products.
</div>
<ng-template [ngTemplateOutlet]="titleTemplate"
[ngTemplateOutletContext]="{title: 'Footer'}">
</ng-template>
컨텍스트 데이터를 수신하기 위해 반복되는 내용을 포함하는 ng-template 요소는 ngFor 지시문에 사용되는 확장 구문과 비슷한 변수 이름을 지정하는 let 속성을 정의. 표현식의 값은 let-변수 에 다음과 같은 값을 할당.
<ng-template #titleTemplate let-text="title">
이 예제의 let- 속성은 표현식 title 을 평가하여 값이 할당되는 text라는 변수를 만든다.
표현식이 평가되는 데이터를 제공하기 위해 ngTemplateOutletContext 지시문이 적용된 ng-template 요소는 다음과 같이 map객체를 제공한다.
<ng-template [ngTemplateOutlet]="titleTemplate"
[ngTemplateOutletContext]="{title: 'Footer'}">
</ng-template>
신규 바인딩의 대상은 ngTemplateOutletContext이며 다른 지시문처럼 보이지만 실제로는 일부 지시어가 데이터 값을 받기 위해 사용하는 입력 속성의 예이다.
바인딩에 대한 표현식은 let-속성 이름이 일치하는 다른 ng-template 요소이다.
결과적으로 ngFor 디렉티브와 같이 반복되는 내용을 바인딩을 사용하여 조정할 수 있다.
'Programming language > Angular( 2.x~ )' 카테고리의 다른 글
ERROR in node_modules/rxjs/internal/types.d.ts(81,44): error TS1005: ';' expected 문제 (0) | 2019.03.05 |
---|---|
Angular 디렉티브 (0) | 2018.07.24 |
Angular Component study (0) | 2018.06.19 |
Angular 개발환경 설정 및 실행 (0) | 2018.01.24 |
- Total
- Today
- Yesterday
- Vue3
- vue-router
- anime.js
- 자바스크립트
- for of 구문
- cordova
- JsDoc
- svg 폰트
- svg모션
- 내장요소
- react
- interceptors
- 리프래시토큰
- git checkout -b
- IntrinsicElements
- RefreshToken
- Intrinsic
- CSS
- Angular
- icon font
- react-router-dom
- 코도바
- 태그
- React.StrictMode
- 아이콘 폰트 만들기
- 반복문
- 앵귤러
- git
- svg icon font
- Aptana
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |