ããŒã1 ããŒã2 ããŒã3 ããŒã4
ãã£ãšããŒããŒãå¿
èŠ
ç§ãã¡ã®ç©èªã«ã¯ãã£ãšå€ãã®ããŒããŒãå¿
èŠã§ãã Heroes Tourã¢ããªã±ãŒã·ã§ã³ãå±éããŠããŠãŒã¶ãŒãããŒããŒãéžæãã圌ã«é¢ãã詳现æ
å ±ã衚瀺ã§ããããŒããŒã®ãªã¹ãã衚瀺ããŸãã
ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããããŒã2
ããŒããŒã®ãªã¹ãã衚瀺ããããã«å¿
èŠãªãã®ã«ã€ããŠèããŠã¿ãŸãããã ãŸãã衚瀺ããããŒããŒã®ãªã¹ããå«ãé
åãå¿
èŠã§ãã 次ã«ãé
åãããã³ãã¬ãŒãã«ããŒã¿ãæž¡ãæ¹æ³ãå¿
èŠã§ãã
ç§ãã¡ãæ³ãŸã£ãå Žæ
2çªç®ã®ããŒããŒãã¢ãŒã«é²ãåã«ã æåã®ããŒããå®äºããå¿
èŠããããŸãã ãŸã è¡ã£ãŠããªãå Žåã¯ãæ»ã£ãŠãã ããã
ã³ãŒãå€æãšã¢ããªã±ãŒã·ã§ã³å®è¡ããµããŒã
TypeScriptã³ã³ãã€ã©ãå®è¡ããŠããã¡ã€ã«ã®å€æŽãç£èŠããããã«ã³ã³ãã€ã«ããWebãµãŒããŒãèµ·åããããã«ããŸãã å
¥åããããšã§ãããè¡ããŸã
npm start
ããã«ãããããŒããŒãã¢ãŒã®äœæãç¶ç¶ããŠããéãã¢ããªã±ãŒã·ã§ã³ãå®è¡ããç¶ããŸãã
ããŒããŒã®å±ç€º
ããŒããŒäœæ
app.component.ts
ã®äžéšã«10人ã®ããŒããŒã®é
åãäœæããŠã¿ãŸãããã
app.component.tsïŒããŒããŒã®é
åïŒ
let HEROES: Hero[] = [ { "id": 11, "name": "Mr. Nice" }, { "id": 12, "name": "Narco" }, { "id": 13, "name": "Bombasto" }, { "id": 14, "name": "Celeritas" }, { "id": 15, "name": "Magneta" }, { "id": 16, "name": "RubberMan" }, { "id": 17, "name": "Dynama" }, { "id": 18, "name": "Dr IQ" }, { "id": 19, "name": "Magma" }, { "id": 20, "name": "Tornado" } ];
HEROES
ã¯ãæåã®ããŒãã§äœæããã¯ã©ã¹ã§ããHero
ã¿ã€ãã®èŠçŽ ã®é
åã§ãã ãã¡ããããã®ããŒããŒã®ãªã¹ããWebãµãŒãã¹ããååŸãããã®ã§ãããå°ããªã¹ããããèžãã§ãæåã«ã¢ãã¯ãªããžã§ã¯ãïŒä»¥åã«æå®ãããããŒã¿ãè¿ãã¹ã¿ãïŒããããŒããŒã衚瀺ããŸãã
ããŒããŒã®è¡šçŸ
ãã€ã³ãããããŒããŒã®ãœãŒã¹ãšãªãããããã£ãAppComponent
äœæããŸãããã
app.component.tsïŒããããã£-ããŒããŒã®é
åïŒ
public heroes = HEROES;
heroes
ã®ã¿ã€ããæ瀺çã«å®çŸ©ããå¿
èŠã¯ãããŸããã TypeScriptã¯HEROES
å€æ°ããååŸã§ããŸãã
ããã§ããã®ã³ã³ããŒãã³ãã¯ã©ã¹ã§ããŒããŒã®ãªã¹ããå®çŸ©ã§ããŸãã ããããæçµçã«ã¯WebãµãŒãã¹ããããŒããŒãååŸããããšãç¥ã£ãŠããŸãã ãããã£ãŠããã®ããŒã¿ãã¯ã©ã¹å®è£
ããããã«åŒãåºãããšã¯çã«ããªã£ãŠããŸãã
ãã³ãã¬ãŒãã«ããŒããŒã衚瀺ãã
ã³ã³ããŒãã³ãã«ã¯heroes
ãå«ãŸããŠããŸãã ãã³ãã¬ãŒãã«é äžåãªã¹ããäœæããŠè¡šç€ºããŠã¿ãŸãããã ããŒããŒã«é¢ãã詳现æ
å ±ã®äžã®èŠåºãã®äžã«ã次ã®HTMLãæ¿å
¥ããŸãã
app.component.tsïŒããŒããŒãã³ãã¬ãŒãïŒ
<h2>My Heroes</h2> <ul class="heroes"> <li> </li> </ul>
ããã§ãããŒããŒãå
¥åã§ãããã³ãã¬ãŒããã§ããŸããã
ngForã§ããŒããŒããªã¹ããã
ã³ã³ããŒãã³ãå
ã®ããŒããŒã®é
åããã³ãã¬ãŒãã«é¢é£ä»ãããããå埩åŠçããåããŒããŒãåå¥ã«è¡šç€ºããããšæããŸãã ãããè¡ãã«ã¯ãAngularã®å©ããå¿
èŠã§ãã ã¹ããããã€ã¹ãããã§å§ããŸãããïŒ
æåã«ãçµã¿èŸŒã¿*ngFor
ãã£ã¬ã¯ãã£ããè¿œå ããŠ<li>
å€æŽããŸãã
app.component.tsïŒngForïŒ
<li *ngFor="#hero of heroes">
* ngFor`ã®)
ã®å
é ã®ã¢ã¹ã¿ãªã¹ã¯ïŒ ` )
ã¯ãæ§æã®éèŠãªéšåã§ãã**
ngFor
ã®*
ãã¬ãã£ãã¯ã¹ã¯ã <li>
èŠçŽ ãšãã®åããã¹ã¿ãŒãã³ãã¬ãŒããæ§æããããšã瀺ããŸãã
ngFor
ãã£ã¬ã¯ãã£ãã¯heroes
é
åãééããŠã AppComponent.heroes
ããããã£ãè¿ãããã³ãã¬ãŒãã«è¡šç€ºããŸãã
ngFor
ã«ãã£ãŠå²ãåœãŠãããåŒçšããã¹ãã¯ãã heroes
é
åã®åããŒããŒãååŸããããŒã«ã«å€æ°hero
ã«ä¿åãã察å¿ãããã³ãã¬ãŒãã€ã³ã¹ã¿ã³ã¹ã§äœ¿çšã§ããããã«ãããããšãæå³ããŸãã
hero
åã®ãã¬ãã£ãã¯ã¹#
ã¯ãããŒããŒãããŒã«ã«ãã³ãã¬ãŒãå€æ°ãšããŠèå¥ããŸãã 次ã«ããã³ãã¬ãŒãã§ãã®å€æ°ãåç
§ããŠãããŒããŒã®ããããã£ã«ã¢ã¯ã»ã¹ã§ããŸãã
ngFor
ããã³ããŒã«ã«ãã³ãã¬ãŒãå€æ°ã®è©³çŽ°ã«ã€ããŠã¯ã ããŒã¿ãããã³ã°ããã³ãã³ãã¬ãŒãæ§æã®ç« ãngFor
ãã ããã
ããã§ã <li>
ã¿ã°ã®éã«ã³ãŒããæ¿å
¥ããŸãããã®ã³ãŒãã¯ã hero
ãã³ãã¬ãŒãå€æ°ã䜿çšããŠhero
ã®ããããã£ã衚瀺ããŸãã
app.component.tsïŒngForãã³ãã¬ãŒãïŒ
<li *ngFor="#hero of heroes"> <span class="badge">{{hero.id}}</span> {{hero.name}} </li>
ãã©ãŠã¶ãããŒãžãæŽæ°ãããšãããŒããŒã®ãªã¹ãã衚瀺ãããŸãïŒ
ããŒããŒã«ã¹ã¿ã€ã«ãè¿œå ãã
ããŒããŒã®ãªã¹ãã¯ããªãéå±ã«èŠããŸãã ã©ã®ããŒããŒãéžæãããã«ãŒãœã«ãçŸåšã©ã®ããŒããŒã®äžã«ãããããŠãŒã¶ãŒãç解ã§ããããã«ããŠãŒã¶ãŒã«èŠèŠçã«ããããããããããšæããŸãã
ã³ã³ããŒãã³ãã«ã¹ã¿ã€ã«ãè¿œå ããŸãããã 次ã®CSSã¯ã©ã¹ã@Component
ãã³ã¬ãŒã¿ãŒã®styles
ããããã£ã«å²ãåœãŠãŸãã
app.component.tsïŒã¹ã¿ã€ã«ã®è¿œå ïŒ
styles:[` .selected { background-color: #CFD8DC !important; color: white; } .heroes { margin: 0 0 2em 0; list-style-type: none; padding: 0; width: 15em; } .heroes li { cursor: pointer; position: relative; left: 0; background-color: #EEE; margin: .5em; padding: .3em 0; height: 1.6em; border-radius: 4px; } .heroes li.selected:hover { background-color: #BBD8DC !important; color: white; } .heroes li:hover { color: #607D8B; background-color: #DDD; left: .1em; } .heroes .text { position: relative; top: -3px; } .heroes .badge { display: inline-block; font-size: small; color: white; padding: 0.8em 0.7em 0 0.7em; background-color: #607D8B; line-height: 1em; position: relative; left: -1px; top: -4px; height: 1.8em; margin-right: .8em; border-radius: 4px 0 0 4px; } `]
é·ãæååã®è€æ°è¡è¡šçŸã«ã¯ãåã³ `-notationã䜿çšããããšã«æ³šæããŠãã ããã
ã³ã³ããŒãã³ãã«ã¹ã¿ã€ã«ãå²ãåœãŠããšãã¹ã¿ã€ã«ã¯ãã®ç¹å®ã®ã³ã³ããŒãã³ãã®ã¹ã³ãŒãå
ã«ã®ã¿ååšããŸãã ãããã£ãŠãã¹ã¿ã€ã«ã¯AppComponent
ã®ã¿é©çšãããå€éšHTMLã«ãæŒãããããšã¯ãããŸããã
ããŒããŒã衚瀺ããããã®ãã³ãã¬ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
app.component.tsïŒããŒããŒã®ã¹ã¿ã€ã«ïŒ
<h2>My Heroes</h2> <ul class="heroes"> <li *ngFor="#hero of heroes"> <span class="badge">{{hero.id}}</span> {{hero.name}} </li> </ul>
ããããã®ã¹ã¿ã€ã«ïŒ ããã«ç€ºãããã«ãããããã³ã³ããŒãã³ãã®èª¬æã«å«ããããå¥ã®ãã¡ã€ã«ã«ç§»åããŠãã³ã³ããŒãã³ãã³ãŒããç°¡çŽ åããŸãã ããã¯æ¬¡ã®ç« ã§è¡ããŸãã ãšããããããã®ãŸãŸã«ããŠãããŸãããã
ããŒããŒã»ã¬ã¯ã·ã§ã³
ãã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ãããŒããŒã®ãªã¹ããš1人ã®ããŒããŒã«é¢ããæ
å ±ããããŸãã ããŒããŒã®ãªã¹ããš1人ã®ããŒããŒã¯ããŸã£ããé¢ä¿ãããŸããã ãŠãŒã¶ãŒã«ãªã¹ãå
ã®ããŒããŒãéžæããŠããããéžæããããŒããŒã«é¢ããæ
å ±ã詳现ãã¥ãŒã«è¡šç€ºãããããã«ããŸãã ãã®UIãã¿ãŒã³ã¯äžè¬ã«ããã¹ã¿ãŒ/ãã£ããŒã«ããšããŠç¥ãããŠããŸãïŒããã¹ã¿ãŒ/ã¹ã¬ãŒãããšç¿»èš³ãããŸãããããã¹ã¿ãŒ/ãã£ããŒã«ãã¯å°æ¥äœ¿çšãããäºå®ã§ãïŒã ãã®å Žåããã¹ã¿ãŒã¯ããŒããŒã®ãªã¹ãã§ããã詳现ã¯éžæããããŒããŒã®è©³çŽ°ãªè¡šçŸã§ãã
ãªã¹ãå
ã®ããŒããŒã®ã¯ãªãã¯ã®ã€ãã³ãã«é¢é£ä»ãããããselectedHeroãã³ã³ããŒãã³ãã®ããããã£ãä»ããŠããã¹ã¿ãŒã詳现ã«æ¥ç¶ããŸãããã
ã¯ãªãã¯ã€ãã³ãïŒããŠã¹ã¯ãªãã¯ïŒ
Angularã€ãã³ããã€ã³ãã£ã³ã°ã䜿çšããŠã¯ãªãã¯ã€ãã³ãåŠçãæ¿å
¥ããããšã«ããã <li>
å€æŽããŸãã
app.component.tsïŒã¯ãªãã¯ã€ãã³ããã£ããã£ïŒ
<li *ngFor="#hero of heroes" (click)="onSelect(hero)"> <span class="badge">{{hero.id}}</span> {{hero.name}} </li>
ã€ãã³ããã€ã³ãã£ã³ã°ã«çŠç¹ãåœãŠãïŒ
(click)="onSelect(hero)"
æ¬åŒ§ã¯ãã¯ãªãã¯ã€ãã³ãã®ã¿ãŒã²ãããšããŠ<li>
èŠçŽ ãæå®ããŸãã çå·ã®å³åŽã®åŒã¯ã AppComponent
ã³ã³ããŒãã³ãã«ããonSelect()
ã¡ãœãããåŒã³åºãã hero
ãã³ãã¬ãŒãã®ããŒã«ã«å€æ°ãåŒæ°ãšããŠæž¡ããŸãã ããã¯ã以åã«ngFor
å®çŸ©ããã®ãšåãhero
å€æ°ã§ãã
ã€ãã³ããã€ã³ãã£ã³ã°ã®è©³çŽ°ã«ã€ããŠã¯ãã ãŠãŒã¶ãŒå
¥åãããã³ã ãã³ãã¬ãŒãæ§æ ãã®ç« ãåç
§ããŠãã ããã
ã¯ãªãã¯ãã³ãã©ãŒãè¿œå ãã
ãã®ã€ãã³ãã¯ããŸã ååšããªãonSelect
ã¡ãœããã«é¢é£ä»ããããŠããŸãã ãã®ã¡ãœãããã³ã³ããŒãã³ãã«è¿œå ããŸãã ãã®ã¡ãœããã¯äœããã¹ãã§ããïŒ ã³ã³ããŒãã³ãã®å€æ°ãselected heroãã«ããŠãŒã¶ãŒãã¯ãªãã¯ããããŒããŒãæžã蟌ãå¿
èŠããããŸãã
ãããŸã§ã®ãšãããã³ã³ããŒãã³ãã«ã¯ãã®ãããªå€æ°ã¯ãªãã®ã§ãè¿œå ããããšããå§ããŸãããã
éžæããããŒããŒã®ä»»åœ
AppComponent
hero
ããããã£ã¯å¿
èŠãªããªããŸããã selectedHero
ããããã£ã«çœ®ãæããŸãã
app.component.tsïŒselectedHeroïŒ
selectedHero: Hero;
ãŠãŒã¶ãŒãèªåã§ããŒããŒãéžæãããŸã§ããŒããŒã¯éèŠã§ã¯ãªããšå€æãããããããŒããŒã§è¡ã£ãããã«selectedHero
åæåããŸããã
次ã«ããŠãŒã¶ãŒãã¯ãªãã¯ãhero
selectedHero
ããããã£ã«å€hero
æžã蟌ãonSelect
ã¡ãœãããè¿œå ããŸãã
app.component.tsïŒonSelectïŒ
onSelect(hero: Hero) { this.selectedHero = hero; }
éžæããããŒããŒã®è©³çŽ°æ
å ±ããã³ãã¬ãŒãã«è¡šç€ºããå¿
èŠããããŸãã çŸæç¹ã§ã¯ããã³ãã¬ãŒãã¯ãŸã å€ãhero
ããããã£ã«ã¢ã¯ã»ã¹ããŠããŸãã ãã³ãã¬ãŒããä¿®æ£ããŠãæ°ããselectedHero
ããããã£ã«ãã€ã³ãããŸãã
app.component.tsïŒselectedHeroã«ã¹ãããïŒ
<h2>{{selectedHero.name}} details!</h2> <div><label>id: </label>{{selectedHero.id}}</div> <div> <label>name: </label> <input [(ngModel)]="selectedHero.name" placeholder="name"/> </div>
ngIfã§ç©ºã®ããŒã¿ãé衚瀺ã«ãã
ã¢ããªã±ãŒã·ã§ã³ãããŠã³ããŒããããšãããŒããŒã®ãªã¹ãã衚瀺ãããŸãããããŒããŒã¯éžæãããŠããŸããã selectedHero
å®çŸ©ãselectedHero
ããŸãããã€ãŸãã undefined
ã§ãã ãããããã©ãŠã¶ã³ã³ãœãŒã«ã«æ¬¡ã®ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããçç±ã§ãã
EXCEPTION: TypeError: Cannot read property 'name' of undefined in [null]
èŠããŠããããã«ããã³ãã¬ãŒãã«ã¯selectedHero.name
ã衚瀺selectedHero.name
ããŸãã ããããã£ãå«ãselectedHero
å€æ°ãå®çŸ©ãããŠããªãããã name
ããããã£ã¯ååšããŸããã
ããŒããŒãéžæããããŸã§ãããŒããŒã«é¢ãã詳现æ
å ±ãDOMããåé€ããããšã«ããããã®åé¡ã解決ããŸãã
ããŒããŒã«é¢ãã詳现æ
å ±ãå«ãHTMLã<div>
ã©ããããŸããã çµã¿èŸŒã¿ã®ngIf
ãã£ã¬ã¯ãã£ããè¿œå ããã³ã³ããŒãã³ãã®selectedHero
ããããã£ãããã«èšå®ããŸãã
app.component.tsïŒngIfïŒ
<div *ngIf="selectedHero"> <h2>{{selectedHero.name}} details!</h2> <div><label>id: </label>{{selectedHero.id}}</div> <div> <label>name: </label> <input [(ngModel)]="selectedHero.name" placeholder="name"/> </div> </div>
*ãngIfãã®åã®å
é ã®ã¢ã¹ã¿ãªã¹ã¯ïŒ ïŒã¯æ§æã®éèŠãªéšåã§ããããšãå¿ããªãã§ãã ãã **
selectedHero
å€æ°ãå®çŸ©ããããŸã§ã ngIf
ãã£ã¬ã¯ãã£ãã¯è©³çŽ°ãªããŒããŒæ
å ±ãå«ãHTMLãDOMããåé€ããŸãã ãããã£ãŠãããŒããŒã«é¢ãã詳现ãªæ
å ±ãæã€èŠçŽ ããå¿é
ãã䟡å€ã®ãããã€ã³ãã£ã³ã°ããããŸããã
ãŠãŒã¶ãŒããªã¹ãããããŒããŒãéžæãããšã selectedHero
å€æ°ãå€ãååŸããŠå®çŸ©ããã ngIf
ãããŒããŒã«é¢ãã詳现æ
å ±ãå«ãããŒã¿ãDOMã«é
眮ãããã¹ãããããã€ã³ãã£ã³ã°ãå®è£
ããŸãã
ngIf
ãš `ngFor 'ã¯ããæ§é ãã£ã¬ã¯ãã£ãããšåŒã°ããŸããããã¯ãDOMã®äžéšã®æ§é ãå€æŽã§ããããã§ãã ã€ãŸããAngularãDOMã§ã³ã³ãã³ããã¬ã³ããªã³ã°ããæ¹æ³ã®æ§é ãå®çŸ©ããŸãã
ngIfãngForãããã³ãã®ä»ã®æ§é åãã£ã¬ã¯ãã£ãã®è©³çŽ°ã«ã€ããŠã¯ã æ§é ãã£ã¬ã¯ãã£ããšãã³ãã¬ãŒãæ§æã®ç« ãåç
§ããŠãã ããã
ãã©ãŠã¶ãæŽæ°ãããããŒããŒã®ãªã¹ãã衚瀺ãããŸãããéžæããããŒããŒã«é¢ãã詳现æ
å ±ã¯è¡šç€ºãããŸããã NgIf
ã¯ã selectedHero
å€æ°ãå®çŸ©ããããŸã§ãDOMã®å€éšã«ä¿åããŸãã ãªã¹ãå
ã®ããŒããŒãã¯ãªãã¯ãããšãéžæããããŒããŒã«é¢ãã詳现æ
å ±ã衚瀺ãããŸãã ãã¹ãŠãæåŸ
ã©ããã«æ©èœããŸãã
éžæããã¢ã€ãã ã®ã¹ã¿ã€ã«èšå®
ãªã¹ãã®äžã«éžæããããŒããŒã«é¢ããæ
å ±ã衚瀺ãããŸãããäžã®ãªã¹ãã§ã¯ãã®ããŒããŒããã°ããèŠã€ããããšãã§ããŸããã ãããä¿®æ£ããã«ã¯ãCSSã§selected
ã¯ã©ã¹ãã¡ã€ã³ãªã¹ãã®å¯Ÿå¿ãã<li>
èŠçŽ ã«é©çšããŸãã ããšãã°ãããŒããŒã®ãªã¹ãããããŒã³ã¿ãéžæãããšã次ã®ããã«èæ¯è²ãå€æŽããŠèŠèŠçã«åŒ·èª¿è¡šç€ºããããšãã§ããŸãã

ãã³ãã¬ãŒãã§selected
ã¯ã©ã¹ãèšå®ããããã«ã class
èŠçŽ ã«ãã€ã³ãã£ã³ã°ããããã£ãè¿œå ããŸãã ããã¯ãçŸåšã®selectedHero
ãšhero
ãæ¯èŒããåŒã«ãã£ãŠè¡ããŸãã
ããŒã¯CSSã¯ã©ã¹ã®ååã§ãïŒ selected
ïŒã äž¡æ¹ã®ããŒããŒãäžèŽããå Žåãå€ã¯trueïŒ true
ïŒãããã§ãªãå Žåã¯falseïŒ false
ïŒã§ãã ãæåãäžèŽããå Žåã¯selected
ã¯ã©ã¹ãé©çšããäžèŽããªãå Žåã¯åé€ããŸãããšèšããŸã ã
app.component.tsïŒCSSã¯ã©ã¹ã®èšå®ïŒ
[class.selected]="hero === selectedHero"
ãã³ãã¬ãŒãã§ã¯ã class.selected
è§æ¬åŒ§ïŒ []
ïŒã§å²ãŸããŠããããšã«æ³šæããŠãã ããã ããã¯ãããŒã¿ãœãŒã¹ïŒåŒhero === selectedHero
ïŒããclass
ããããã£ã«ããŒã¿ãããŒãäžæ¹åã«é²ãããããã£ãã€ã³ãã£ã³ã°ã®æ§æã§ãã
app.component.tsïŒåããŒããŒã®æ§åŒåïŒ
<li *ngFor="#hero of heroes" [class.selected]="hero === selectedHero" (click)="onSelect(hero)"> <span class="badge">{{hero.id}}</span> {{hero.name}} </li>
ããããã£ã®ãã€ã³ãã®è©³çŽ°ã«ã€ããŠã¯ããã³ãã¬ãŒãã®æ§æã®ç« ãåç
§ããŠãã ããã
ãã©ãŠã¶ãã¢ããªã±ãŒã·ã§ã³ãåèµ·åããŸãã ããŒã³ã¿ã®ããŒããŒãéžæããŸããéžæã¯èæ¯è²ã«ãã£ãŠæ確ã«èå¥ãããŸãã

å¥ã®ããŒããŒãéžæãããšãèæ¯è²ããã®ããŒããŒã«åãæ¿ãããŸãã
çŸæç¹ã§ã®app.component.ts
ã®å®å
šãªã³ã³ãã³ãã¯app.component.ts
ã§ãã
app.component.ts import {Component} from 'angular2/core'; export class Hero { id: number; name: string; } @Component({ selector: 'my-app', template:` <h1>{{title}}</h1> <h2>My Heroes</h2> <ul class="heroes"> <li *ngFor="#hero of heroes" [class.selected]="hero === selectedHero" (click)="onSelect(hero)"> <span class="badge">{{hero.id}}</span> {{hero.name}} </li> </ul> <div *ngIf="selectedHero"> <h2>{{selectedHero.name}} details!</h2> <div><label>id: </label>{{selectedHero.id}}</div> <div> <label>name: </label> <input [(ngModel)]="selectedHero.name" placeholder="name"/> </div> </div> `, styles:[` .selected { background-color: #CFD8DC !important; color: white; } .heroes { margin: 0 0 2em 0; list-style-type: none; padding: 0; width: 15em; } .heroes li { cursor: pointer; position: relative; left: 0; background-color: #EEE; margin: .5em; padding: .3em 0; height: 1.6em; border-radius: 4px; } .heroes li.selected:hover { background-color: #BBD8DC !important; color: white; } .heroes li:hover { color: #607D8B; background-color: #DDD; left: .1em; } .heroes .text { position: relative; top: -3px; } .heroes .badge { display: inline-block; font-size: small; color: white; padding: 0.8em 0.7em 0 0.7em; background-color: #607D8B; line-height: 1em; position: relative; left: -1px; top: -4px; height: 1.8em; margin-right: .8em; border-radius: 4px 0 0 4px; } `] }) export class AppComponent { title = 'Tour of Heroes'; heroes = HEROES; selectedHero: Hero; onSelect(hero: Hero) { this.selectedHero = hero; } } var HEROES: Hero[] = [ { "id": 11, "name": "Mr. Nice" }, { "id": 12, "name": "Narco" }, { "id": 13, "name": "Bombasto" }, { "id": 14, "name": "Celeritas" }, { "id": 15, "name": "Magneta" }, { "id": 16, "name": "RubberMan" }, { "id": 17, "name": "Dynama" }, { "id": 18, "name": "Dr IQ" }, { "id": 19, "name": "Magma" }, { "id": 20, "name": "Tornado" } ];
æ©ããé
ãã®ç« ã§éæããããšã¯æ¬¡ã®ãšããã§ãã
- ããŒããŒãã¢ãŒã«ããŒããŒã®ãªã¹ãã衚瀺ãããããã«ãªããŸããã
- ããŒããŒãéžæããéžæããããŒããŒã«é¢ãã詳现æ
å ±ã衚瀺ããæ©èœãè¿œå ããŸããã
- ã³ã³ããŒãã³ããã³ãã¬ãŒãã§
ngIf
ããã³ngFor
çµã¿èŸŒã¿ãã£ã¬ã¯ãã£ãã䜿çšããæ¹æ³ãåŠã³ãŸããã
ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããããŒã2
ä»åŸã®ãã¹
ç§ãã¡ã®ããŒããŒãã¢ãŒã¯æé·ããŸãããããŸã å®å
šã§ã¯ãããŸããã ã¢ããªã±ãŒã·ã§ã³å
šäœã1ã€ã®ã³ã³ããŒãã³ãã«å
¥ããããšã¯ã§ããŸããã ããããµãã³ã³ããŒãã³ãã«å解ããããããé£æºãããæ¹æ³ãæããå¿
èŠããããŸãã 次ã®ç« ã§ãããè¡ãæ¹æ³ãåŠã³ãŸãã