访问组件中的导出组件

时间:2016-10-30 17:59:03

标签: angular typescript

我想从组件中发送组件,这意味着我有这个:

@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**)
}

1 个答案:

答案 0 :(得分:1)

你应该可以用类名来引用它。

class MyComponent {
    private myVar: MyComponent;

    constructor(){
        console.log("created!")
    }
    myFunction () {
        var myVar = MyComponent;
        new myVar();
    }
}

您可以查看结果js here