我能够投射内容,但无法获得相同的引用
https://stackblitz.com/edit/angular-khyr1u?file=src%2Fapp%2Fapp.component.html
我尝试使用#SelectorName以及通过 ContentChild()和ContentChildren()。 尽管调用了ngAfterViewInit钩子,我仍然无法以某种方式获取参考
更新的代码说明:viewchild,viewchildren,contentchild和contentChildren:https://stackblitz.com/edit/angular-wnhayw?file=src/app/course-card/course-card.component.ts
答案 0 :(得分:0)
您要寻找的是@ViewChild
装饰器,而不是@ContentChild
装饰器。
@ContentChild
装饰器为您提供对位于组件的开始和结束标记之间的元素的引用:
<my-component>
<div #myContentChild></div>
</my-component>
@ViewChild
装饰器为您提供了组件视图中元素的引用:
my-component.component.html:
<div #myViewChild></div>
在您的示例中,#test
元素是my-app
的视图子元素和<app-course-card>
的内容子元素。这意味着,如果要从#test
组件中查询AppComponent
,则可以使用@ViewChild
。如果要从#test
中查询CourseCardComponent
,则需要使用@ContentChild
。
有关更多详细信息,请参见以下SO帖子: