THE HERO EDITOR
set upに書かれている方法でセットアップする。
プロジェクト名(フォルダー名)をangular-tour-of-heroesにする
プロジェクト名(フォルダー名)をangular-tour-of-heroesにする
git clone https://github.com/angular/quickstart.git angular-tour-of-heroes
cd angular-tour-of-heroes
npm install
この章では、live example . をつくる。
まず
npm start
を実行する
このコマンドによりTypescriptコンパイラがワッチモードで起動し、サーバーとブラウザが起動する。コンパイラは、ソースコードの修正をつねに監視し、変更があれは、すぐにブラウザに反映させる。
ここから改造していく
AppComponentに二つのプロパティsをもたせる。二つのプロパティsとは a
ブラウザでタイトルとヒーローが変わっているのが確認できる。まず
npm start
を実行する
このコマンドによりTypescriptコンパイラがワッチモードで起動し、サーバーとブラウザが起動する。コンパイラは、ソースコードの修正をつねに監視し、変更があれは、すぐにブラウザに反映させる。
ここから改造していく
AppComponentに二つのプロパティsをもたせる。二つのプロパティsとは a
title プロバティ(アプリケーションの名前) とa hero プロパティ( ヒーローの名前 "Windstorm")app.component.ts (AppComponent class)
export class AppComponent {
title = 'Tour of Heroes';
hero = 'Windstorm';
}
@Componentのthe テンプレートのバインディング(binding)を新しいプロパティに合わせて変更する。
template: '<h1>{{title}}</h1><h2>{{hero}} details!</h2>'
二重の中カッコ"{{ }}"は、componentからtitleとheroを読み込みアプリに渡すことを指事する。二重の中カッコ"{{ }}"は、一方向バインディング の補完(interpolation)形式である。
注 補完(interpolation)について詳しくは、 Displaying Data chapter.をみよ
Hero object
ヒーローに名前以外にもっとプロパティをもたせたい。そこで、heroプロパティを文字列(literal string)からクラス(class)に変える。
idとnameのプロパティを持ったa
Hero classを作る。app.component.tsファイルの先頭のimportステートメントの下に入れる。
app.component.ts (Hero class)
export class Hero {
id: number;
name: string;
}
app.component.ts (hero property)
hero: Hero = {
id: 1,
name: 'Windstorm'
};
template: '<h1>{{title}}</h1><h2>{{hero.name}} details!</h2>'
HTMLにいろいろ追加する
ES2015(ECMASCript2015)と TypeScriptのマルチライン・ストリングを使ってテンプレートを書き換える。app.component.ts (AppComponent's template)
template:`<h1>{{title}}</h1>
<h2>{{hero.name}} details!</h2><div><label>id: </label>{{hero.id}}</div>
<div><label>name: </label>{{hero.name}}</div>`
ヒーローの編集
nameの <label>を<label> と <input>に変える。下記のようになるapp.component.ts (input element)
template:`<h1>{{title}}</h1><h2>{{hero.name}} details!</h2><div><label>id: </label>{{hero.id}}</div><div><label>name: </label><input value="{{hero.name}}" placeholder="name"></div>`
ヒーローの名前が入力できるようになったが、入力しても<h2>に表示される名前は変わらない。一方向バインディングでは、それはできない。
二方向バインディング(Two-Way Binding)
FormsModule パッケージをアンギュラー モジュールへインポートする。
それをthe
NgModule のデコレーターの(decorator's) imports配列に追加する。This この配列は、アプリで使用する外部モジュールsのリストを持つ。 これでngModelを持つformsパッケージの準備ができた。app.module.ts (FormsModule import)
import { NgModule } from '@angular/core';import { BrowserModule } from '@angular/platform-browser';import { FormsModule } from '@angular/forms';import { AppComponent } from './app.component';@NgModule({imports: [BrowserModule,FormsModule],declarations: [AppComponent],bootstrap: [ AppComponent ]})export class AppModule { }
二方向バインディングのために
ブラウザがリフレッシュされ、inputに入力するとただちに
この章のまとめ
ngModel 組み込み命令を用い テンプレートの修正をおこなう。
<input>を書を下記のHTMLで置き換える。<input [(ngModel)]="hero.name" placeholder="name">
<h2> のヒーロー名が変わるのが確認できる。この章のまとめ
ライブ例題は、ここ ==> live example
これから、さらに改造していく。
これからの章は ここ ==>Master/Detail
0 件のコメント:
コメントを投稿