我已经开始了解AngularJS和感到困惑的差异是什么之间ng-app
和data-ng-app
的指令。
Answer 1:
大多数这些问题的答案都只是说品牌模板有效的HTML,或HTML验证合规 ,没有解释什么是那些术语的意思是,无论是。
我不知道是肯定的,但我猜,这些条款适用于扫描为符合标准的HTML代码验证程序 - 有点像皮棉。 他们不承认ng-app
作为一个有效的属性。 他们希望非默认HTML属性要与开头
data-attribute_name_here
。
所以,创作者AngularJS
已经创建了自己的指令,它们包括备用名称data-
在他们面前,使HTML验证程序会“喜欢”他们。
Answer 2:
无在运行时的行为而言,这些都只是不同的风格命名指令如下所述: http://docs.angularjs.org/guide/directive
指令有骆驼套管的名称,如ngBind。 该指令可以通过这些特殊字符翻译驼峰名字变成蛇的情况下被调用:, - 或_。 可选的指令可以以x-作为前缀,或数据,使其HTML验证标准。 下面是一些可能的指令名称的列表:NG:绑定,NG绑定,ng_bind,X-NG-绑定和数据-NG-绑定。
你可以从阅读本的看data-
可以用来使你的HTML通过HTML验证测试/
Answer 3:
可以声明角命名空间<html xmlns:ng="http://angularjs.org" ng-app>
Answer 4:
在现代浏览器没有区别,但在旧的IE的,除非你声明定义它的XML命名空间,他们将无法正常工作。
还有在验证差ng-app
是无效的XHTML,并会导致您的网页失败HTML验证。 角允许您使用前缀其指令data-
或x-
允许它来验证。
Answer 5:
您可以使用数据NG-,而不是NG-,如果你想使你的网页的HTML有效。
这将抛出一个错误
<div ng-app="">
<p>Input something in the input box:</p>
<p>Name: <input type="text" ng-model="name"></p>
<p ng-bind="name"></p>
</div>
这不会引发错误
<div data-ng-app="scope" data-ng-init="name='test'">
<p>Input something in the input box:</p>
<p>Name: <input type="text" data-ng-model="name"></p>
<p data-ng-bind="name"></p>
</div>
Answer 6:
这两个术语之间的基本区别在于,数据-NG-应用验证HTML而后者don't.Functionality保持相同。 欲了解更多的参考,你可以尝试w3Validator。
Answer 7:
当然还有两者之间没有什么区别,只是某些HTML5验证将抛出像NG-应用属性的错误,但他们不抛出异常的任何与数据 - 前缀,如数据-NG-应用。 因此,使用数据 - 前缀与我们的角度指令是好的。
甚至你可以利用的角度指令在结合绑定下面提到的方法,ng_bind,数据绑定,X结合