[Egg Head] Angular Get Started
Egg Head의 Get Started with Angular를 강의 순서대로 남겨 둘만한 부분에 대해서 간단히 정리 해 본다.
2. Create a Simple Angular 2 Component
|
|
.angular-cli.json
file 에 apps.prefix
값이 selecotr의 prefix로 동작 함
3. Manage Angular 2 Elements with Events and Refs
click event & input binding
input
으로부터 값을 입력 받아서, click
하면 출력하는 예제를 통해 event binding을 해 본다.
|
|
DOM event
(click
)를onClick
method 와 binding.- #myInput 은 refs 라고 하며, Element를 가리키는 듯.
#myInput 의 정체를 조금 더 알 핖요가 있을 듯
HTML
에서 onClick(myInput)
으로 value가 아닌 myInput을 전달하게 되면 Element 가 전달된다.
console.log(myInput.value)
한 후 CDT > console의 출력에 마우스 오버하면 해당 Element를 하이라이트 해 준다.
4. Control Angular 2 Events with $event and Event Handlers
$event
를 parameter 로 넘길 수 있다.
|
|
5. Share Services and Data with Angular 2 Dependency Injection
app.module.ts
의 providers에 생성한Service Class
추가ex)
providers: [MailService]
- 사용할
Component
의constructor
에 추가ex)
constructor(private mailService: MailService) {}
6. Provide and Share Values with Angular 2 Dependency Injection
providers
에 object
를 통해 이름을 변경해서 DI
해 본다.
사용하는 곳에서 import {} from
을 하지 않아도 된다.
app.module.ts
의 providers에{provide: '이름', useClass: 서비스_클래스}
또는{provide: '이름', useValue: '값'}
형태로 주입ex)
{ provide: 'mail', useClass: MailService }
ex){ provide: 'name', useValue: 'robert kim' }
- 사용할
Component
의constructor
에@Inject
데코레이터와 함께 사용ex)
constructor(@Inject('mail') private mail, @Inject('name') private name)
7. Loop Through Angular 2 Components with ngFor
ngFor
를 사용 해 본다.
- HTML에서
*ngFor="let {변수} of {참조}"
형태로 사용
|
|
Angular Compiler는 HTML을 컴파일 하면서 *
가 있는 부분은 다시 재생성 하는걸로 보인다.
8. Pass Values into Angular 2 Components with @Input
Component
값을 주입하기 위해서는 attribute
형태로 주입하며, @Input
을 이용해야 한다.
|
|
- line 1:
Input
decorator는@angular/core
를 사용한다. - line 5:
diMessage
를 interpolation 했다는건, 해당 class의 member 변수라는 의미 일 것이다. - line 8:
diMessage
에@Input
decorator 를 붙이므로,Attribute
를 통해 값을 받을 수 있다.
위의 DITestComponent
는 아래와 같이 사용하면 된다.
|
|
9. Sync Values from Inputs with Angular 2’s ngModel Two-Way Binding
2-way Binding에 대해 알아본다.
사용법은 HTML
에 [(ngModel)]=variable
형태로 ngModel
keyword를 통해 변수와 바인딩 한다.
app.module.ts
에FormsModule
을 imports 해야 한다.
10. Pass Events from Angular 2 Components with @Output
Output 을 통해 event를 발생 시켜본다.import { Output, EventEmitter } from '@angular/core';
|
|
- line 1:
Output
,EventEmitter
decorator는@angular/core
를 사용한다. - line 7: button click시
eventEmitter.emit
method를 호출한다.
이벤트를 수신 받을 때는 다음과 같이 사용한다.
|
|
@Output
은 사용하는곳의 Event binding 이름이다.
@Output() updateMsg = new EventEmitter();
하게되면, 사용하는곳에서는<using-comp (updateMsg)="someFunc">
형태로 사용 함
11. Write CSS inside of Angular 2 Components
해당 Component 에서만 유효하다.
|
|
Component 전체에 대한 스타일은 사용하는 곳에서, 사용하려는 Component Selector 를 Tag로 스타일을 적용하면 된다.
|
|
12. Apply CSS Classes Conditionally with NgClass
ngClass
를 Input binding 한 후, object({claaName: true}
)를 통해 css 적용 여부를 설정하면 된다.
|
|
13. Global CSS
Global
scope 으로 css를 import(index.html에) 한 후 각 Component에서 css 사용 여부를 설정할 수 있다.
|
|