【发布时间】:2016-07-01 20:27:37
【问题描述】:
我正在学习 Angular Js。我发现许多作者使用 ng-init,许多作者使用 data-ng-init。我试图搜索差异,但无法得到适当的答案。如果有人知道它们之间的区别,请分享您的答案。
谢谢!
【问题讨论】:
-
所有角度属性指令都可以写成
ng-thing或data-ng-thing。两者都是 100% 等效的。
标签: angularjs
我正在学习 Angular Js。我发现许多作者使用 ng-init,许多作者使用 data-ng-init。我试图搜索差异,但无法得到适当的答案。如果有人知道它们之间的区别,请分享您的答案。
谢谢!
【问题讨论】:
ng-thing或data-ng-thing。两者都是 100% 等效的。
标签: angularjs
HTML5 验证器会在 ng-app 上抛出错误。当我们使用 data- 作为前缀时,它只是忽略了 throw an error
【讨论】:
理想情况下,两者在功能上没有区别,但只有验证。
HTML5 诞生后,Visual Studio 等代码编辑器将“ng-”高亮显示为无效内容。但实际上它是有效的,所以有一种方法可以让代码编辑器理解 AngularJS 的属性是有效的,方法是在其前面加上 'data-ng-*'。
因此,当使用前缀时,在任何 HTML5 代码编辑器中,它不会为属性添加下划线并将其视为有效。
这是“data-*”前缀的最初用途。
【讨论】:
有趣的问题。来自W3schools:
如果你想制作你的页面,你可以使用 data-ng-,而不是 ng- HTML 有效。
HTML Validators 会抛出带有ng-init 之类的属性的错误,但如果我们给data- 加上前缀(例如:data-ng-init),HTML Validators 会接受它并且它将是有效的。
您可以在此处阅读更多详细信息:https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes
注意:data-* 属性是扩展 HTML 的方式。
【讨论】:
data-ng-init 是 HTML5 验证代码,其中 ng-init 在 HTML5 方面无效。这适用于所有角度指令。
【讨论】: