扩展的HTML属性

时间:2015-08-08 07:45:25

标签: javascript angularjs html5

我是网络开发的初学者,我有一些误解。

来自wwwschools:

AngularJS extends HTML with new attributes.

因此angularJS使用例如ng-modelng-app等等。 我的问题是

  1. 为什么AngularJS会这样做,添加自定义属性会使HTML无效?
  2. 我可以添加自己的属性,如<h myAttr="hello">,然后使用JS访问它就像普通属性一样吗?

2 个答案:

答案 0 :(得分:1)

Angular不会自行添加它们。它允许您使用一些自定义属性,如ng-model来处理其功能,但您必须自己设置它们。

如果您使用非标准属性,则可以使用data-*有效属性替换它们,例如data-ng-model="stuff"

最后,经常使用添加自己的自定义属性(通常在Angular中称为指令)。您可以查看angular doc以获取有关如何实现此目的的提示。

答案 1 :(得分:0)

  
      
  1. 为什么AngularJS会这样做,添加自定义属性会使HTML无效?
  2.   

这个想法是你可以编写自己的自定义独立元素,更好地解释它们的用途。例如,而不是:

<div class="date-picker" data-initial="2015-08-08"></div>

你可以写:

<date-picker value="2015-08-08" />

比具有特殊标记CSS类的普通<div>更容易解释。

当然,这不仅仅是开箱即用,您必须通过编写Angular directive来定义这个新的日期选择器元素。

  
      
  1. 我可以添加自己的属性,然后像使用普通属性一样使用JS访问它吗?
  2.   

是的,您可以通过编写新的指令(见上文)。