我想从组件中发送组件,这意味着我有这个:
@Component({
selector: 'my-component',
templateUrl: 'my.template.html'
})
export class MyComponent {
private myVar: any;
constructor(){
}
myFunction() =>{
}
}
课外我可以简单地打电话:
import { MyComponent } from './my.component';
但我希望在课堂上获得MyComponent
:
myFunction() =>{
this.myVar = **MyComponment**
}
如何获得**MyComponent**
?
请注意,我不需要该实例,但需要该类本身。
修改 我意识到我的问题不够明确。这是我需要做的......我需要提取组件并在其他地方重新创建它。在另一个组件中,我有以下内容:
export class MyOtherComponent {
constructor(private viewContainer: ViewContainerRef, private componentFactoryResolver: ComponentFactoryResolver){
}
createComponent(myComponent) =>{
var factory = this.componentFactoryResolver.resolveComponentFactory(myComponent);
var compRef = this.viewContainer.createComponent(factory);
container.getElement().append($(compRef.location.nativeElement));
}
}
所以内部MyComponent
我希望能够做到这一点:
myFunction() =>{
this.myOtherComponent.createComponent(**MyComponent**)
}
答案 0 :(得分:1)
你应该可以用类名来引用它。
class MyComponent {
private myVar: MyComponent;
constructor(){
console.log("created!")
}
myFunction () {
var myVar = MyComponent;
new myVar();
}
}
您可以查看结果js here。