【发布时间】:2018-10-27 09:45:23
【问题描述】:
我是 Angular 4 的新手,在阅读官方教程 https://angular.io/tutorial 时,我偶然发现了 Master/Detail 组件 (https://angular.io/tutorial/toh-pt3),他们在英雄列表组件和英雄详细信息组件之间进行了属性绑定:
<app-hero-detail [hero]="selectedHero"></app-hero-detail>
这是教程的直接引用:
这是从 HeroesComponent 的 selectedHero 属性到目标元素的 hero 属性的单向数据绑定,它映射到 HeroDetailComponent 的 hero 属性。 现在,当用户单击列表中的英雄时, selectedHero 会发生变化。当 selectedHero 发生变化时,属性绑定会更新 hero 并且 HeroDetailComponent 会显示新的 hero。
如果您检查代码,app-hero-detail 允许通过输入字段更改 hero.name 参数。令我惊讶的是,在更改 hero.name 字段时, selectedHero.name 的值也发生了变化(您可以查看直播恶魔https://stackblitz.com/angular/moymegapmypx)。
我有什么遗漏吗?这不应该是一种单向绑定(selectedHero 改变英雄但不是另一种方式)? 我相信对此有一个解释。
【问题讨论】: