我正在关注Master/Detail Components - Angular tutorial heroes。我的问题是,为什么hero
也会在父级中发生变化,如果它发送的不同变量不会绑定hero
。我相信一定不会发生。
Angular example here (heroes tour stackblitz.com)。相关代码:
<h2>My Heroes</h2>
<ul class="heroes">
<li *ngFor="let hero of heroes"
[class.selected]="hero === selectedHero"
(click)="onSelect(hero)">
<span class="badge">{{hero.id}}</span> {{hero.name}}
</li>
</ul>
<app-hero-detail [hero]="selectedHero"></app-hero-detail>
答案 0 :(得分:2)
这是因为hero
作为参考传递。在hero-detail-component
以下ngModel
直接更改hero.name
下方。
因为它们是直接更改的,所以不需要为父级发出事件。
<强>英雄:强>
<app-hero-detail [hero]="selectedHero"></app-hero-detail>
<强>英雄细节:强>
<input [(ngModel)]="hero.name" placeholder="name"/>
export class HeroDetailComponent implements OnInit {
@Input() hero: Hero;