Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取angular2中组件的TemplateRef?_Angular - Fatal编程技术网

如何获取angular2中组件的TemplateRef?

如何获取angular2中组件的TemplateRef?,angular,Angular,我有一个组件,需要将您的TemplateRef传递给一个指令,该指令将使用createEmbeddedView方法在模式中复制此组件 我试过了,但没有成功 <template let-ref> <my-component [myDirective]="ref"></my-component> </template> 如何执行此操作?在模板中,在ng模板级别创建一个变量: 您的模板内容 在将其与@ViewChild一起使用的组件中,

我有一个组件,需要将您的
TemplateRef
传递给一个指令,该指令将使用
createEmbeddedView
方法在模式中复制此组件

我试过了,但没有成功

<template let-ref>
    <my-component [myDirective]="ref"></my-component>
</template>


如何执行此操作?

在模板中,在ng模板级别创建一个变量:


您的模板内容
在将其与
@ViewChild
一起使用的组件中,它将可用于
OnInit

@组件({
选择器:“我的组件”,
templateUrl:'my component.html'
})
导出类MyComponent实现OnInit{
@ViewChild('templateref')公共templateref:templateref;
恩戈尼尼特(){
console.log(this.templateref);
}
}

可能
ViewChild
声明可以简化,我还没有对它进行过更多的测试。

ref在这里有效吗?这看起来有点奇怪
myDirective
位于模板内,您需要从它所属的模板创建指令视图。我认为这行不通。如果它可以工作,您需要将
let ref
更改为#ref。您应该知道
myDirective
在使用
创建嵌入式视图之前不会被实例化。
myDirective
只获取组件的TemplateRef,并传递给创建模式和调用
createEmbeddedView()的服务
。我尝试使用
#ref
,但没有成功。