次のシナリオを検討してください。three を使用しNameInputComponent
て、それぞれテキスト入力をラップし、次を構築しFullNamesComponent
ます。
- 2 つ
NameInputComponent
の s、個々の名のペア (firstName1
&firstName2
) - 1 つ
NameInputComponent
、共通の姓 (sharedLastName
)
FullNamesComponent は、次の 2 つの完全な名前を公開する必要があります。
fullName1 = firstName1 + ' ' + sharedLastName
fullName2 = firstName2 + ' ' + sharedLastName
これらのコンポーネントを一緒にリンクする適切な方法は何でしょうか? を使用してみngModel
ました。これにより、入力の値を の変数にバインドできますが、NameInputComponent
構築を続ける方法がわからなくなって、親コンポーネントでこれらの値を使用して何かを行うことができます。私が理解していることから、を使用しEventEmitter
て値を親から消費可能にする必要がありますが、これについてどうすればよいかわかりません。
これは送信されるフォームとして使用されていないことに注意してください。出力にバインドしてページの他の部分に使用したり、ページの他のセクションへのバインディングを介して/プログラムで入力の内容を変更したりできるようにしたいと考えています。
これが私がこれまでに持っているものです:
name-input.component.ts
import {Component} from 'angular2/core';
@Component({
selector: 'name-input',
template: `
<h2>{{inputValue}}</h2>
<input type="text" [(ngModel)]="inputValue">
`
})
export class NameInputComponent {
inputValue: string; // <= How do I detect changes to this?
}
フルネーム.component.ts
import {Component} from 'angular2/core';
@Component({
selector: 'full-names',
template: `
{{fullName1}} & {{fullName2}}
<name-input #firstName1></name-input>
<name-input #firstName2></name-input>
<name-input #sharedLastName></name-input>
`,
directives: [
NameInputComponent
],
providers: [
NameInputComponent
]
})
export class FullNamesComponent {
fullName1: string; // No idea how to link these
fullName2: string; // to values in components above
}