扩展的HTML属性
问题描述:
我是网页开发的初学者,我有一些误解。扩展的HTML属性
从wwwschools:
AngularJS extends HTML with new attributes.
所以angularJS使用例如ng-model
,ng-app
等。 我的问题是
- 为什么AngularJS会这样做,添加自定义属性会导致HTML无效?
- 我可以添加自己的属性,如
<h myAttr="hello">
,然后用JS访问它,就像普通属性一样吗?
答
Angular不会自动添加它们。它允许你使用一些自定义属性,如ng-model
来处理它的功能性的东西,但你必须自己设置它们。
如果使用非标准属性困扰您,您可以用data-*
有效属性替换它们,如data-ng-model="stuff"
。
最后,添加您自己的自定义属性(通常称为Angular中的指令)经常使用。您可以查询angular doc以了解如何实现此目的的提示。
答
- 为什么AngularJS做到这一点,添加自定义属性时,使HTML无效?
的想法是,你可以写自己的自定义自包含的元素更好地解释他们的目的是什么。例如,而不是:
<div class="date-picker" data-initial="2015-08-08"></div>
你可以写:
<date-picker value="2015-08-08" />
这更是不言自明的比一个普通<div>
有特殊标记的CSS类。
当然,这不仅仅是开箱即用,您必须通过编写Angular directive来定义这个新的日期选取器元素。
开始=“2”>
- 我可以添加自己的属性等,然后用JS访问它就像一个正常的属性?
是的,你可以通过写一个新的指令(见上文)。