gpt4 book ai didi

html - Angular 2 将现有的 CSS 类应用于动态注入(inject)的组件

转载 作者:行者123 更新时间:2023-11-28 15:51:33 25 4
gpt4 key购买 nike

我通过以下方式向 DOM 动态注入(inject)组件:

let factory  = this.componentFactoryResolver.resolveComponentFactory(component); 
let injector = ReflectiveInjector.fromResolvedProviders([], refDOM.parentInjector);
let comp = factory.create(injector);
comp.changeDetectorRef.detectChanges();
refDOM.insert(comp.hostView,position);
return comp

我有一个 CSS 类:

.vbox {

display: -webkit-box;
display: -moz-box;
display: box;

-webkit-box-orient: vertical;
-moz-box-orient: vertical;
-ms-box-orient: vertical;
box-orient: vertical;


display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: flex;

-webkit-flex-direction: column;
-moz-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
}

我想将类 vbox 应用于动态注入(inject)组件的 :host css 标签。由于动态组件在注入(inject)之前未在 html 文件中定义,因此我无法应用现有的类样式,例如:class="vbox"。

这有可能实现吗?

谢谢。

最佳答案

你可以在动态组件里面添加

@HostBinding('class.vbox')
isVboxClass:boolean = false; // or true by default

然后使用

启用它
comp.instance.isVboxClass = true;

或者只是

comp.location.classList.add('vbox');

关于html - Angular 2 将现有的 CSS 类应用于动态注入(inject)的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41824680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com