我的情况恰好适用于AngularJS,但实际上这是一个普遍的问题。
使用AngularJS时,有些功能需要自定义属性,例如ng-repeat。建议在它前面添加数据 - 因此“旧浏览器”不会删除它(在Angular的情况下,某些功能将被删除)。在什么时候不再需要? IE8? IE9?添加它们并没有太大的区别,但实际上知道(而不是盲目地做)哪些浏览器需要它,或者更好的是,当它可以安全地停止添加前缀时,这将是很好的。
答案 0 :(得分:2)
没有(至少是常见的)浏览器存在不使用data
前缀的随机属性的问题。从技术上讲,自定义属性应该以{{1}}为前缀,以便“有效”,但实际上,没有当前的缺点可以省去前缀。该规范建议使用data
前缀,因为它是未来的证据。例如,如果您创建一个名为data
的角度指令并按如下方式使用它:mask
,那么如果HTML6引入了一个名为<div mask></div>
的属性,则会发生冲突。但是,mask
保证永远不会成为冲突。
虽然我个人并不关心我的页面是否使用HTML验证工具进行验证,但data-mask
提供的未来证明很有吸引力......我为了方便而将其遗弃。在大多数情况下,重构任何在未来发生冲突的事情可能不会有太大的作用 - 无论如何这都是不太可能的。
您可能一直在考虑的是Angular对自定义data
的使用,就像您希望将elements
指令用作mask
一样。为了使自定义元素在旧版IE中运行,请阅读http://docs.angularjs.org/guide/ie。