作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有动态创建的元素
initElem() {
let childElFactory = this._cfRes.resolveComponentFactory(childElCmp);
// _cfRes is ComponentFactoryResolver
let childElRef = this._vcRef.createComponent(childElFactory);
// _vcRef is ViewContainerRef
childElRef.instance.childElModel = someModel;
}
我想补充
[ngClass]="{active: childElModel.active}"
属性和
#childEl
归属于 childElCmp 的宿主元素。
我不想使用 elementRef,因为它不是正确的方法。我认为 Renderer 是我正在寻找的东西,但我不知道如何以正确的方式使用它。
最佳答案
您不能将 [ngClass]...
或任何其他绑定(bind)应用于动态添加的组件。
可以添加
@HostBinding('class.active') isActive:boolean = false;
进入你动态添加的组件然后使用
childref.instance.isActive = true;
从组件中添加/删除 active
类。
或者你可以将ElementRef
注入(inject)父组件并使用
elementRef.nativeElement.querySelector('child-el').classList.add('active');
关于angular - 如果元素是动态创建的,以编程方式将 [ngClass] 添加到宿主元素的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40103474/
我正在开发框架,我已将此框架项目添加到宿主项目中。现在我想将 cocoapods pod(框架)添加到父(主机)项目中。并将同一个 pod 共享到子(框架)项目中。或者有什么我可以添加到 Podfil
我正在尝试使用 vagrant , Clojure和 emacs一起。具体来说,我无法连接cider到我的 vagrant机器。 它在本地工作,当我运行时 cider-jack-in在我的项目里面。
我是一名优秀的程序员,十分优秀!