Sak*_*ala 5 shadow-dom angular
我已经动态创建了元素
initElem() {
let childElFactory = this._cfRes.resolveComponentFactory(childElCmp);
// _cfRes is ComponentFactoryResolver
let childElRef = this._vcRef.createComponent(childElFactory);
// _vcRef is ViewContainerRef
childElRef.instance.childElModel = someModel;
}
Run Code Online (Sandbox Code Playgroud)
我想补充
[ngClass]="{active: childElModel.active}"
Run Code Online (Sandbox Code Playgroud)
属性和
#childEl
Run Code Online (Sandbox Code Playgroud)
childElCmp 的宿主元素的属性。
我不想使用 elementRef,因为它不是一种正确的方法。我认为 Renderer 是我正在寻找的,但我不知道如何以正确的方式使用它。
您不能[ngClass]...对动态添加的组件应用或任何其他绑定。
你可以加
@HostBinding('class.active') isActive:boolean = false;
Run Code Online (Sandbox Code Playgroud)
到您动态添加的组件中,然后使用
childref.instance.isActive = true;
Run Code Online (Sandbox Code Playgroud)
要获取active类添加/部件中删除。
或者你可以注入ElementRef父组件并使用
elementRef.nativeElement.querySelector('child-el').classList.add('active');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2676 次 |
| 最近记录: |