Я создал простой пользовательский интерфейс, состоящий из двух компонентов (родительский и дочерний).
Что делает пользовательский интерфейс, так это при вводе некоторого материала в поле ввода дочернего компонента. Значение изменится с помощью ngModel.
Детский компонент отлично работает.
// Child Component
@Component({
selector: 'child',
template: `
<p>{{sharedVar}}</p>
<input [(ngModel)]="sharedVar">
`
})
export class ChildComponent {
sharedVar: string;
}
Теперь у меня есть родительский компонент, который я намерен использовать то же значение, что и дочерний компонент.
Я добавил дочерний компонент в шаблон родителя и использую инъекцию зависимостей для вызова Child Component sharedVar
.
// Parent Component
@Component({
selector: 'parent',
template: `
<h1>{{sharedVar}}</h1>
<child></child>
`,
directives: [ChildComponent],
providers: [ChildCompnent]
})
export class ParentComponent {
sharedVar: string;
constructor(child: ChildComponent) {
this.sharedVar = child.sharedVar;
}
}
Проблема заключается в том, что, когда я печатаю в поле ввода, значение в <p>
изменяется автоматически, а значение в родительском компоненте <h1>
не изменяется.