在 Angular 中使用 HTML 标记作为指令

Posted

技术标签:

【中文标题】在 Angular 中使用 HTML 标记作为指令【英文标题】:Using an HTML Tag for a Directive in Angular 【发布时间】:2018-12-01 00:27:21 【问题描述】:

在 Angular (2+) 中,通常会使用 html 标签将组件添加到模板中,并使用 HTML 属性添加指令:在这两种情况下,这都是通过 @Component/@Directive 装饰器中的选择器参数实现的:

<!-- component set up using-- selector: 'my-component' -->
<my-component></my-component>
<!-- directive set up using-- selector: '[myDirective]' -->
<div myDirective></div>

我测试了我是否可以设置一个使用 HTML 标签而不是属性的指令,它似乎工作正常:

<!-- directive set up using-- selector: 'my-tag-directive' -->
<my-tag-directive></my-tag-directive>

我想知道这是否在 Angular 中得到官方支持。

【问题讨论】:

注意:我们目前使用的是 Angular 2,所以我对此进行了测试,尽管目的是升级。 说“似乎工作正常”是指您没有收到任何错误或 Directive 工作正常中的某些逻辑? ya angular 5 已弃用 @Buczkowski 我设置了它,将其添加到我的模板中,并将 alert('hello') 添加到 ngOnInit,并且没有产生任何错误。 @ChellappanV 你有链接吗? ***.com/a/50972583/2661556 中提供的链接似乎表明它是允许的。 【参考方案1】:

是的,它也可以是标签,请参阅此文档了解更多信息

https://angular.io/api/core/Directive#selector

【讨论】:

但它可以是“虚构”标签吗?从您提供的链接(以及我发现的其他链接)来看,它看起来不像。它们只是绑定到现有的、完善的标签,而不是“新”标签。例如,我觉得您可以为组件标签执行此操作,但不能完全生成一个新标签。 之前的编辑:没关系,我已经实际测试过这个并且可以确认这个工作。

以上是关于在 Angular 中使用 HTML 标记作为指令的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 结构指令中使用动态组件会产生额外的 HTML 标记。如何删除或更换它?

Angular Material 教程之布局篇 : 布局简介

Angular 2:我如何将指令应用于净化的 html/innerhtml

角。从 html 标记中删除属性的构建步骤

为 Angular 指令添加多个“要求”选项

如何在 Angular Google Maps 指令中使用相对路径?