如何读取angular.element的属性,而不知道它是否已经带有数据或x数据的前缀

时间:2014-11-04 11:21:19

标签: angularjs angularjs-directive

我想知道,是否有一种标准方法可以从角元素获取属性,而不知道属性名称是否以数据或x数据为前缀。

我在指令中看到了这段代码:

el.attr('x-data-' + attr) || el.attr('data-' + attr) || el.attr(attr).

这是正确的方法,还是有更标准的东西?

2 个答案:

答案 0 :(得分:1)

如果这是您自己的应用程序,您的指令将被使用,如果您知道您的浏览器版本(即不是< = IE8),我不会打扰data-前缀。

另一方面,如果您正在开发其他人使用的指令库,并且您无法控制浏览器或HTML作者,那么您应该只使用您拥有的。

答案 1 :(得分:1)

在HTML中 您可以将属性添加到元素,如data - *。(注意:始终使用数据为您的属性添加前缀 - )

<div data-tasktype = "somevalue"> </div>

在Js文件中 您可以获取属性的值,如

 var val = element.data('tasktype');

(注意:这里将跳过前缀部分。) 浏览器:IE9&amp;以上,铬等

如果您不确定浏览器或不确定将用于属性的命名约定,您可以选择

 el.attr('x-data-' + attr) || el.attr('data-' + attr) || el.attr(attr)