Я хотел расширить приложение из [Учебника Angular2 в] [1], имея внучонок компонент, питания выберите, вызываемый из HeroDetailComponent:Angular2 Обнаружение изменения - объект против ввода строки собственности
selector: 'my-hero-detail',
template: `
<div *ngIf="hero">
<h2>{{hero.name}} details!</h2>
<div><label>id: </label>{{hero.id}}</div>
<div>
<label>name: </label>
<input [(ngModel)]="hero.name" placeholder="name"/>
<power-select [(power)]="hero.power"></power-select>
</div>
</div>
`,
directives: [PowerSelectComponent],
inputs: ['hero']
Когда я передаю в hero.power как объект, изменения отражаются на родителях/бабушке и дедушке.
http://plnkr.co/edit/UfMStWU5fEywvovpSIg1?p=preview
Однако, если я пытаюсь передать hero.power как строка изменения не будут отражаться, если я не использовать EventEmitter @Ouput.
http://plnkr.co/edit/p9YcfGudIgSbGPp1xrlw?p=preview (предоставляется: zoechi)
Спрашивается, зачем мне нужен EventEmitter @output, когда я передать строку, а не когда я передать объект?