角英雄教程Master / Detail Components。为什么英雄会改变父母?

时间:2018-04-08 03:10:38

标签: angular ionic2 angular-components

我正在关注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>

1 个答案:

答案 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;