AngularJS 指令限制 A 与 E

2022-08-30 04:47:47

我在一个小团队中工作,在AngularJS中构建,并试图保持一些基本标准和最佳实践;特别是考虑到我们对Angular相对较新。

我的问题是关于指令的。更准确地说,是选项。restrict

我们中的一些人正在使用这样在html中。restrict: 'E'<my-directive></my-directive>

其他人正在使用和拥有html。restrict: 'A'<div my-directive></div>

然后,当然,您可以使用上述任一方法。restrict: 'EA'

目前这没什么大不了的,尽管当这个项目变得如此之大时,我希望任何看着它的人都可以轻松理解发生了什么。

做事的属性或元素方式是否有利弊?

如果选择说元素而不是属性,我们应该知道什么陷阱吗?


答案 1

restrict 用于定义指令类型,它可以是 (Attribute)、(Class)、(Element) 和 (coMment),让我们假设指令的名称是:ACEMDoc

类型 : 用法

A =<div Doc></div>

C =<div class="Doc"></div>

E =<Doc data="book_data"></Doc>

M =<!--directive:Doc -->


答案 2

根据文档

何时应使用属性与元素?在创建控制模板的组件时使用元素。这种情况的常见情况是,当您为模板的某些部分创建域特定语言时。在使用新功能修饰现有元素时使用属性。

编辑以下关于陷阱的评论以获得完整的答案:

假设您正在构建一个应该在Internet Explorer上运行的应用程序< = 8,并且AngularJS团队已从AngularJS 1.3中删除其支持,则必须遵循以下说明才能使其正常工作:https://docs.angularjs.org/guide/ie