ParentComponent.ts
Код: Выделить всё
@Component({
selector: "parent",
template: `
Click Here!
`,
styles: [`
.container {
display: none;
}
.show .container {
display: block;
}
`]
})
export class ParentComponent {
@HostBinding("class.show") show = false;
showChildren(): void {
this.show = true;
}
}
Код: Выделить всё
@Component({
selector: "child",
template: ""
})
export class ChildComponent.ts {
@HostListener("click")
clickMe(): void {
/* This event is never captured */
}
}
Код: Выделить всё
Child 1
Child 2
Child 3
Код: Выделить всё
Click Here!
Child 1
Child 2
Child 3
- Когда страница впервые отображается, элемент div с классом «контейнер» изначально скрыто, поскольку для параметра display установлено значение none
- Затем пользователь нажимает «Нажмите здесь!» и класс «show» добавляется в родительский div. Это изменит отображение в контейнере на блокировку.
Вот проблема: Обработчики кликов на дочерних элементах не срабатывают. Если дочерние элементы изначально отображаются с помощью display:block;, обработчики кликов работают правильно. Они не работают только тогда, когда содержащий div сначала скрыт, а затем отображается.
Есть идеи, почему? Любая помощь приветствуется.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ment-style