앵귤러/01 퀵스타트 & 튜토리얼

2-2 영웅편집기 만들기

linor 2017. 8. 5. 13:02

영웅편집기 만들기

폴더구조는 위와 같이 진행할 예정이다.

 


먼저 프로젝트를 생성하고, 서버를 구동한다.

ng new angular-tour-of-heroes

cd angular-tour-of-heroes

ng serve -open

 

@Component, select 메타데이타, template 메타데이타, {{}}(표현식)

app/app.component.ts

import { Component } from '@angular/core';

 

@Component({

  selector: 'app-root',

  template: `

    <h1>{{title}}</h1>

    <h2>{{hero.name}}</h2>

    <div><label>id: </label>{{hero.id}}</div>

    <div>

      <label>이름: </label>

      <input [(ngModel)]="hero.name" placeholder="이름">

    </div>

  `,

  styleUrls: ['./app.component.css']

})

export class AppComponent {

  title = '영웅 여행';

  hero:Hero = {

    id: 1,

    name: '이순신'

  }

}

 

export class Hero{

  id: number;

  name: string;

}

 

모듈 전체내역은 위와 같다.

영웅 인터페이스를 생성하여 오브젝트를 관리하려고 한다.

영웅인터페이스에는 idname속성을 부여하였다.

 

앵귤러컴포넌트 데코레이터내에 selector는 컴포넌트의 directive를 지정하는 것으로 여기에서 my-app으로 하였다.

Template은 표시할 html템플릿을 기재한다. 여기에서 한 줄html을 사용할 때에는 작은따옴표(‘)를 이용하고, 여러줄을 사용할 때에는 그래이브문자(`)를 이용한다.

템플릿 내에 중괄호2({{ }})를 사용한 expression(표현식)을 사용하여 데이터를 html과 연결한다.

 

[(ngModel)] Two-way 바인딩으로 텍스트박스에 hero.name속성을 바인딩하는 앵귤러 구문이다.

[(ngModel)]을 사용하기 위해서는 모듈에 FormsModule을 임포트해야 한다.

export는 타모듈에서의 사용을 허용하기 위함이다.

 

FomrsModule임포트

app/app.module.ts

import { BrowserModule } from '@angular/platform-browser';

import { FormsModule } from '@angular/forms';

import { NgModule } from '@angular/core';

 

import { AppComponent } from './app.component';

 

@NgModule({

  declarations: [

    AppComponent

  ],

  imports: [

    BrowserModule,

    FormsModule

  ],

  providers: [],

  bootstrap: [AppComponent]

})

export class AppModule { }

 

결과가 화면에 나타난다.