Angular 在ng if中使用时,正确实施ng内容存在

Angular 在ng if中使用时,正确实施ng内容存在,angular,angular-lifecycle-hooks,ng-content,Angular,Angular Lifecycle Hooks,Ng Content,当前的代码可以工作,但肯定远远不是理想的(我的意思是可能不是角度的方式) 我的组件可能会也可能不会投影外部内容。仅当组件的一个输入未定义时,才会呈现投影内容将到达的div包装器。在前一个输入的setter中发生setTimeout调用以推迟某些DOM内容检查,告知是否应应用特定类,changeDetectorRef.markForCheck()最终会相应地触发视图更新 有人能告诉我应该做什么吗 @组件({ //几乎整个应用程序都使用OnPush更改检测策略 changeDetection:Cha

当前的代码可以工作,但肯定远远不是理想的(我的意思是可能不是角度的方式)

我的组件可能会也可能不会投影外部内容。仅当组件的一个输入未定义时,才会呈现投影内容将到达的div包装器。在前一个输入的setter中发生setTimeout调用以推迟某些DOM内容检查,告知是否应应用特定类,changeDetectorRef.markForCheck()最终会相应地触发视图更新

有人能告诉我应该做什么吗

@组件({
//几乎整个应用程序都使用OnPush更改检测策略
changeDetection:ChangeDetectionStrategy.OnPush,
模板:`
`
})
出口级卡片组件{
@HostBinding('class.hasInjectedButtons')hasInjectedButtons:boolean;
@ViewChild('footer')页脚:ElementRef;
@Input()设置数据(有效负载:wsDataScheme){
// …
//尝试检查是否应应用CSS类
设置超时(()=>{
this.hasInjectedButtons=this.footer
?此.footer.nativeElement.querySelector(“.external buttons”)
:错
;
this.changeDetectorRef.markForCheck();
});
}
}
我对Angular lifecycle resolution process dispite感到困惑,因为我读过几篇使用下图的文章。我希望在执行
ngAfterViewCheck
时填充并访问“footer”ViewChild,但似乎不是这样。使用lifecycle钩子ngAfterContentCheck和ngOnChanges对我也没有帮助,ContentChild投影的内容引用装饰器也没有帮助


我不确定我是否理解您的意图,但如果您想知道ng内容是否在DOM中,请使用viewchild setter,它一出现就会触发。view DOM和content DOM之间存在差异,视图DOM允许访问组件模板本身中声明的元素,而内容DOM指的是“投影”元素(属于/声明为树中上层组件的元素),这些元素恰好在前一个组件中呈现<代码>项目文本)我不确定我是否理解您试图执行的操作,但如果您想确定ng内容是否在DOM中,请使用viewchild setter,它一存在就会触发。view DOM和content DOM之间存在差异,视图DOM允许访问组件模板本身中声明的元素,而内容DOM指的是“投影”元素(属于/声明为树中上层组件的元素),这些元素恰好在前一个组件中呈现<代码>项目文本)