根据source code on GitHub,@ViewChild
(或@ViewChildren
,@ContentChild
和@ContentChildren
)的选择器可以采用三种参数类型之一作为第一种参数:
前两个很容易。不过,我无法弄清楚如何做第三个。我试过了:
@ContentChild(() => this.templB ) tmplFromFunc: TemplateRef<any>;
不会抛出错误,但tmplFromFunc
未定义,即使this.templB
有值(在DevTools中检查时)
尝试添加forwardRef
:
@ContentChild(forwardRef(() => this.templB )) tmplFromFunc: TemplateRef<any>;
没有区别
尝试删除箭头函数并使用显式函数,该函数仅返回this.tmplB:
抛出错误的@ContentChild( this.getTemplateRef ) tmplFromFunc: TemplateRef<any>;
:无法为“MyComponent”的属性“tmplFromFunc”构建查询,因为未定义查询选择器。查找该错误未获取我有用的/相关的。
尝试在此处添加forwardRef
:
@ContentChild( forwardRef(this.getTemplateRef) ) tmplFromFunc: TemplateRef<any>;
错误无法设置属性'__forward_ref__'未定义
还尝试@ContentChild( this.getTemplateRef() ) tmplFromFunc: TemplateRef<any>;
只是为了好玩,这会返回一个不同的错误: this.getTemplateRef不是函数
所以我尝试在这里添加forwardRef:
@ContentChild( forwardRef(this.getTemplateRef()) ) tmplFromFunc: TemplateRef<any>;
也会抛出 this.getTemplateRef不是函数
整个下午打了我的脑袋之后,我有点不知道下一步该尝试什么。有没有人有一个功能作为选择器工作,如果是这样,你可以分享一些代码或指出我做错了吗?
感谢。