有没有一种方法可以用来在动态创建的Angular 2组件上定义@input属性?
我使用ComponentFactoryResolver在容器组件中创建组件.例如:
let componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentName);
let componentRef = entryPoint.createComponent(componentFactory);
其中"entryPoint"在组件HTML中是这样的:
<div #entryPoint></div>
并在我的容器组件中定义为:
@ViewChild('entryPoint', { read: ViewContainerRef } entryPoint: ViewContainerRef;
这可以很好地工作,但是我找不到使@input属性在新创建的组件上工作的方法.我知道您可以在Component类上显式设置公共属性,但这似乎不适用于ng-Reflect.在进行此更改之前,我有一个用"@input()"装饰的"Selected"属性,该属性导致ANGLE将以下内容添加到DOM:
<my-component ng-reflected-selected="true"></my-component>
有了它,我可以动态更新标记以切换CSS类:
<div class="header" [class.active-header]="selected === true"></div>
通过一些搜索,我找到了一种方法,可以让"@Output"按预期工作,但我还没有找到@Input的任何内容.
让我知道,如果额外的背景将是有益的,我很乐意添加它.