【发布时间】:2016-10-20 05:52:39
【问题描述】:
我正在尝试遵循 Angular 2“英雄之旅”教程,但遇到了问题。在为(单击)事件声明“onSelect”方法后,“让英雄的英雄”列表变为空白。这是我目前所拥有的:
app.component.ts:
import {Component} from '@angular/core';
import {MyComponent} from './my-component';
@Component({
selector: 'my-app',
template: `
<h1>{{title}}</h1>
<h2>My Heroes</h2>
<ul class = 'heroes'>
<li *ngFor="let hero of heroes" (click)='onSelect(hero)'>
<span class='badge'>{{hero.id}}</span>
{{hero.name}}
</li>
</ul>
<h2>{{selectedHero.name}} details!</h2>
<div><label>id: </label>{{selectedHero.id}}</div>
<div>
<label>name: </label><input [(ngModel)] ='selectedHero.name' placeholder = 'name'>
</div>
`,
directives: [MyComponent]
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';
public heroes = HEROES;
selectedHero: Hero;
function onSelect(hero: Hero) {
selectedHero: hero;
}
}
export class Hero {
id: number;
name: string;
}
const HEROES: Hero[] = [
{ id: 11, name: 'Mr. Nice' },
{ id: 12, name: 'Narco' },
{ id: 13, name: 'Bombasto' },
{ id: 14, name: 'Celertitas' },
{ id: 15, name: 'Megneta' },
{ id: 16, name: 'Rubberman' },
{ id: 17, name: 'Dynama' },
{ id: 18, name: 'Dr IQ' },
{ id: 19, name: 'Magma' },
{ id: 20, name: 'Tornado' }
];
我在终端上遇到的错误:
app/app.component.ts(28,2): 错误 TS1005: ',' 预期。
app/app.component.ts(87,2):错误 TS1068:意外令牌。一种 需要构造函数、方法、访问器或属性。
app/app.component.ts(91,1):错误 TS1128:声明或声明 预计。
【问题讨论】:
标签: angular typescript