【发布时间】:2019-02-01 21:00:22
【问题描述】:
我正在尝试从父级访问子元素内的元素,如下例代码:
@Component({
selector: 'parent',
template: `<child></child>`
})
export class Parent implements AfterContentInit, AfterViewInit {
@ViewChildren('element') viewChildren: QueryList<ElementRef>
@ContentChildren('element', {descendants: true}) contentChildren: QueryList<ElementRef>
ngAfterContentInit() {
console.log(this.contentChildren)
}
ngAfterViewInit() {
console.log(this.viewChildren)
}
}
@Component({
selector: 'child',
template: `
<div #element>Div1</div>
<div>Div2</div>
<div #element>Div3</div>
`
})
export class Child {}
我的实际结果是空数组,但我希望数组包含 Div1 和 Div3。我做错了什么?
更新
我真正的问题是:
我有一个组件知道何时在某些元素中附加/删除 CSS 类。这些元素可能在它自己的组件中,也可能在它的子组件中,孙子组件等等。
换句话说,我想要完成的是一种角度的方式来执行以下行:
let elements = document.querySelectorAll("div[element]")
【问题讨论】:
-
contentchildren 是 ng-content 里面的东西 :)
-
@ABOS 是的,但我不得不尝试 =P