AngularJS指令中自定义HTML标记的后果

Mar*_*ulz 12 html angularjs angularjs-directive

假设我gravatar在AngularJS中编写了一个自定义指令,该指令绑定到email作用域上的属性.该指令将取代此HTML ...

<gravatar email="user.email" />
Run Code Online (Sandbox Code Playgroud)

通过一个公共img标签,其src属性设置为正确的Gravatar网址:

<img src="http://gravatar.com/avatar/..." />
Run Code Online (Sandbox Code Playgroud)

我的问题可能有点宽泛甚至天真,但最初<gravatar />在我的网页的HTML中有标记"有多糟糕" ?除了没有通过W3C验证之外,还有任何"现实世界"的后果吗?

Exp*_*lls 7

W3C说

作者不得将元素,属性或属性值用于除其适当的预期语义目的之外的目的,因为这样做会阻止软件正确处理页面.

作者不得使用本规范或其他适用规范不允许的元素,属性或属性值,因为这样做会使语言在将来更难扩展.

http://www.w3.org/html/wg/drafts/html/master/dom.html#elements

自定义元素/属性没有语义值,应该避免这些原因.

您可能不会注意到任何直接后果.毕竟,Angular本身使用非确认ng属性(尽管它们也支持data-前缀).

您可能遇到的唯一可能问题是,如果您引入的元素当前是自定义元素,则该元素将成为规范的一部分,并且具有与您之前所期望的不同的行为,但我认为这种可能性极小.即便如此,如果可以,我会避免使用任何自定义的东西.

最终,您将能够注册自己的自定义元素,但据我所知,没有浏览器支持此规范.