扩展的HTML属性

扩展的HTML属性

问题描述:

我是网页开发的初学者,我有一些误解。扩展的HTML属性

从wwwschools:

AngularJS extends HTML with new attributes. 

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

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

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

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

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

  1. 为什么AngularJS做到这一点,添加自定义属性时,使HTML无效?

的想法是,你可以写自己的自定义自包含的元素更好地解释他们的目的是什么。例如,而不是:

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

你可以写:

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

这更是不言自明的比一个普通<div>有特殊标记的CSS类。

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

  1. 我可以添加自己的属性等,然后用JS访问它就像一个正常的属性?
开始=“2”>

是的,你可以通过写一个新的指令(见上文)。