在Angular 6中,你可以使用@ViewChildren装饰器来获取模板中具有特定标识符的元素或组件。下面是一个示例解决方案:
首先,创建一个新的组件,命名为ChildComponent
,它包含一个具有标识符的元素:
这是一个带有标识符的元素
然后,在父组件中使用@ViewChildren装饰器来获取所有具有特定标识符(在此示例中为myElement
)的子元素:
import { Component, ViewChildren, QueryList, ElementRef } from '@angular/core';
@Component({
selector: 'app-parent',
template: `
`
})
export class ParentComponent {
@ViewChildren('myElement') elements: QueryList;
logElements() {
this.elements.forEach((element: ElementRef) => {
console.log(element.nativeElement.textContent);
});
}
}
在上面的代码中,我们使用@ViewChildren('myElement')
装饰器来获取模板中具有myElement
标识符的所有元素,并将它们存储在名为elements
的QueryList
对象中。
然后,我们在logElements
方法中遍历elements
列表,并使用element.nativeElement
访问底层的DOM元素,并打印出其textContent。
最后,我们将ParentComponent
添加到另一个组件的模板中,如下所示:
当点击“记录元素”按钮时,控制台将打印出所有具有myElement
标识符的元素的文本内容。
请注意,要正确使用@ViewChildren装饰器,确保在使用之前导入ViewChildren
,QueryList
和ElementRef
。