角度模板库

时间:2018-05-01 20:50:28

标签: angular

所以在WPF中,我可以创建一个XAML模板库,并引用我的代码。 在Angular有类似的方法吗?创建一个HTML文件,其中包含我想要使用的通用模板,并在组件中引用这些模板?

1 个答案:

答案 0 :(得分:0)

模板必须由角度编译器处理,因此除非HTML包含在应用程序的某个其他组件中(或除非您使用更多内容),否则没有好的方法可以执行您要求的操作。高级' hacks'将动态编译带有角度编译器的HTML文件......或者直接注入HTML,但这非常不安全)。

您可以创建一个名为'模板库的组件'或者其他什么,在该组件的模板中,您可以包含一组ng-template标签,每个标签都定义了您希望稍后在代码中引用的每个单独模板。您可以获取每个ng-template元素的TemplateRef,然后在您的应用中的任何位置使用它们。

我在我的一个应用程序中做了类似的事情,我写了一个指令,我附加到ng-template元素,自动获取元素的TemplateRef,并将其发送到存储所有不同TemplateRef的服务。然后在我的应用程序的其他地方,我可以使用该服务访问我所有可用的模板,并将它们注入我需要的任何地方。它需要比简单引用外部HTML文件更多的准备工作,但它完成了工作。您只需确保包含' TemplateLibrary'组件中的某个组件,因此编译器将处理这些模板标签(即使它不会显示它们,直到您将它们显式注入其他位置)。