Я работаю с Кендо в Angular некоторое время, и меня кое-что заинтриговало. Многие компоненты Kendo имеют свойство, называемое value
. Это свойство связано со свойством моего компонента (родительского элемента) следующим образом:
<kendo-numerictextbox [value]="quantity">
</kendo-numerictextbox>
Здесь quantity
- это свойство моего компонента. Интересно то, что каждый раз, когда пользователь нажимает на числовое текстовое поле, компонент Kendo обновляет свойство моего компонента. Я пытался повторить то же поведение с моими компонентами, конкретно, я экспериментировал с @HostBinding
, но вместо того, чтобы использоваться с директивой, я использую его с компонентом:
@Component({
selector: 'app-child',
templateUrl: './child.component.html',
styleUrls: ['./child.component.css']
})
export class ChildComponent {
@HostBinding('title') title;
constructor() { }
}
Еще одна вещь, которую я попробовал, - это инъекция родителя ребенку.
@Component({
selector: 'app-child',
templateUrl: './child.component.html',
styleUrls: ['./child.component.css']
})
export class ChildComponent {
constructor(@Host() public parent: AppComponent) { }
}
В этом случае, да, у меня есть доступ к родительским свойствам, но это означает, что дочерний компонент должен знать тип своего родителя.
Вот ссылка на стекаблиц.
Честно говоря, я понятия не имею, как это сделать. Есть идеи?
РЕДАКТИРОВАТЬ: Пожалуйста, обратите внимание, что я спрашиваю о том, как я могу повторить то же поведение, что и компоненты Kendo в отношении их свойства value
. Я не прошу обходного пути с использованием общих служб.