Angular 如何使用其他角度分量的“templateref”?

Angular 如何使用其他角度分量的“templateref”?,angular,Angular,如何使用其他组件模板文件中的templateRef 我有BatmanComponent,SpidermanComponent和JokerComponent。其中一些具有类似的功能,因此我决定创建一个HumanComponent,并将所有可重用的HTML代码放在该文件中,如下所示: 注意:HumanComponent永远不会被使用,它只是一个包含所有默认模板的文件 眼睛:{{size}} 身体:胸围{x[0]},腰部{x[1]},臀部{x[2]} 我可以知道如何注入这些模板(来自human.c

如何使用其他组件模板文件中的
templateRef

我有
BatmanComponent
SpidermanComponent
JokerComponent
。其中一些具有类似的功能,因此我决定创建一个
HumanComponent
,并将所有可重用的HTML代码放在该文件中,如下所示:

注意:
HumanComponent
永远不会被使用,它只是一个包含所有默认模板的文件


眼睛:{{size}}
身体:胸围{x[0]},腰部{x[1]},臀部{x[2]}
我可以知道如何注入这些模板(来自human.component.ts)并在
batman.component.ts
中使用它吗

我知道我可以这样做:(只有当模板代码被复制粘贴到蝙蝠侠、蜘蛛侠和小丑HTML文件中时才可以)


...  
我可以知道如何将templateRef导出到其他文件并重新使用它们吗?我不想在这些文件中复制和粘贴类似的代码,我希望我可以有一个默认的模板文件,只需将这些代码导出到任何需要它的人。可能吗


更新:

在阅读了评论之后,我决定使用可重用组件而不是这种“技术”。。。可能,Angular团队正在努力优化可重用组件方法(如@artyom、@rafael、@ibenjelloun所建议的),那么可能只是遵循他们的路线会更明智。。。哈哈


无论如何,谢谢。

如果您创建了
模板服务
,您可以在其中注册模板并在其他组件中使用它们:

从'@angular/core'导入{Injectable};
@注射的({
providedIn:'根'
})
导出类模板服务{
模板={};
添加(名称:string,ref){
this.templates[name]=ref;
}
获取(名称:string){
返回此.templates[名称];
}
}
然后,您可以从根组件向服务添加模板:

{{{u templatesseservice.add('template1',template1)}
{{{u templatesseservice.add('template2',template2)}
******模板1{{name}}******
-----模板2{{name}}------
并在另一个组件中使用它们:



只需创建一个可重用组件。为了避免使用可重用组件,我的项目中有很多组件。我计划对轻量级代码使用可重用模板方法(不确定是否存在)。哈哈。。。对于更复杂的代码,我确实应用了可重用组件方法…当scant试图保持轻量级或更快地增加复杂性时,请重新考虑。与我(1)应用“重用”组件方法,或(2)将所有模板复制粘贴到所有HTML并在本地使用相比,此方法是否对性能有影响?这是团队建议的方法吗?[只是古玩…]我看不到一个案例我会用这种方法。对于您的问题,我将创建一个组件,这就是它的用途和优化目的。使用模板将是一个好主意,如果您想让组件包含一个正在更改的模板,那么组件将把模板作为输入。