Angularjs 可以是元素、属性、css类和注释的指令?

Angularjs 可以是元素、属性、css类和注释的指令?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我们知道有四种类型的指令: HTML element (E) an attribute on an element (A) a CSS class (C) comment (M) 我们可以在指令中使用restrict:'EACM'。但是当我们需要一个指令成为元素、属性、css类和注释时,有人能给出一个实用的例子吗?谢谢。基本上非常快: 唯一实际使用的值是E和A E是元素指令。这是用于指令注入内容(template或templateUrl)的逻辑限制类型。这将是AngularJS提供给webco

我们知道有四种类型的指令:

HTML element (E)
an attribute on an element (A)
a CSS class (C)
comment (M)

我们可以在指令中使用
restrict:'EACM'
。但是当我们需要一个指令成为元素、属性、css类和注释时,有人能给出一个实用的例子吗?谢谢。

基本上非常快:

唯一实际使用的值是
E
A

E
是元素指令。这是用于指令注入内容(
template
templateUrl
)的逻辑限制类型。这将是AngularJS提供给
webcomponents
的最接近的功能

A
是属性。这是一种逻辑类型的限制,通过将行为添加到模板内的元素或
E-directive
元素来增强元素(例如:
ng click
ng show
…)

C
或多或少是无用的。与
A
指令的预期用法相同,但在阅读角度HTML代码时不太明显,因为您将混合样式化css类和指令css类。当设计者从模板中删除指令类时,由于在css文件中找不到它们,可能会有风险(真实情况)。更快的答案是:不要使用它,而是使用
A


最好的情况是,
M
显然在99.999%的使用中完全无用。这基本上是用于标记验证(避免由
E
A
指令引起的无效标记或属性)的,精神病患者希望(并且认为这是一件好事/必需的事情)使用角度模板验证任何w3验证程序服务。在极少数情况下也可用于向后兼容。对于
M
来说,更快的答案是:这是一个黑客,不要使用它。

也希望知道这个问题的答案,特别是对于C和M。A和E更有意义,但其他两个似乎毫无用处。@HankScorpio是的,我就是这么想的。当我被问到指令是否可以是全部时,我说“嗯,是的”,但我从未使用过这样的指令!