Html ng应用程序与数据ng应用程序的区别是什么?
我目前正在寻找Html ng应用程序与数据ng应用程序的区别是什么?,html,angularjs,Html,Angularjs,我目前正在寻找angular.js 在某个时刻(12'40之后),演讲者说属性ng app和data ng app=“”在标记中或多或少是等效的,因此ng model=“my_data_binding和data ng model=“my_data_binding”也是等效的。然而,发言人说html将通过不同的验证器进行验证,这取决于使用的属性 你能解释一下这两种方式的区别吗,ng-前缀与data ng-前缀 好问题。区别很简单-这两个之间绝对没有区别,除了某些HTML5验证程序会在ng app之
angular.js
在某个时刻(12'40之后),演讲者说属性ng app
和data ng app=“”
在
标记中或多或少是等效的,因此ng model=“my_data_binding
和data ng model=“my_data_binding”
也是等效的。然而,发言人说html将通过不同的验证器进行验证,这取决于使用的属性
你能解释一下这两种方式的区别吗,
ng-
前缀与data ng-
前缀 好问题。区别很简单-这两个之间绝对没有区别,除了某些HTML5验证程序会在ng app
之类的属性上抛出错误,但它们不会对前缀为data-
的任何内容抛出错误,比如data ng app
因此,要回答您的问题,请使用data-ng-app
,如果您想更轻松地验证您的HTML
有趣的事实:你也可以使用
x-ng-app
达到同样的效果。不同之处在于,自定义数据-*
属性在中是有效的。因此,如果需要验证标记,应该使用它们,而不是ng
属性
Angular规范化元素的标记和属性名称以确定
哪些元素与哪些指令匹配。我们通常指
指令的大小写敏感名称(例如。
ngModel)。然而,由于HTML不区分大小写,我们参考
通过小写形式在DOM中执行指令,通常使用
DOM元素上以破折号分隔的属性(例如ng模型)
规范化过程如下所示:
从元素/属性前面剥离x-和数据。将以:、-或_分隔的名称转换为camelCase。这里有一些等价物
与ngBind匹配的元素示例:
根据上述声明,以下所有指令均有效
1。ng绑定2.ng:bind
3.ng_bind
4.数据绑定
5.x-ng-bind
简短回答:
ng模型
和数据ng模型
是相同和等效的!
为什么?
数据-
前缀任何自定义属性的前缀都应为
data-
Angular规范化元素的标记和属性名称,以确定哪些元素与哪些指令匹配。我们通常通过区分大小写的规范化名称引用指令(例如,
ngModel
)。但是,由于HTML不区分大小写,我们在DOM中以小写形式引用指令,通常使用DOM元素上的属性(例如ng model
)。
规范化过程如下所示:
1.从元素/属性的前面剥离
x-
和数据-
。
2.将
:
、-
或
分隔名称转换为camelCase
。
例如
以下形式均为等效形式,并符合ngBind指令:
你好
如果您想使页面HTML有效,您可以使用数据ng-,而不是ng-。如果您想在服务器上操作HTML或HTML片段,然后再将其提供给浏览器,您最肯定的是要使用数据ng xxx属性,而不仅仅是ng xxx属性
的可能重复,但它这样做只是为了与指令名进行比较。它不会改变实际的属性。很高兴知道-、:和uu注释数据前缀会阻止ng属性正常工作吗?(例如,“data ng repeat”)?手动剥离
数据-
和x-
似乎是对CPU周期的浪费。为什么不能将HTML验证规则更改为接受ng-
内容?@DaveAlger:。@DaveAlger:按你说的做是个坏主意。如果有很多著名的工具有不同的前缀,你想让HTML跟随它们添加前缀?!?!正如Krumia所说,这是扩展HTML的方法。我从规范中了解到,data-*可以工作,因为它只是验证HTML。但是为什么x-*会起作用呢?他们在规范中对此没有任何描述。x-*保留供浏览器使用。关于为什么x工作的问题,angular将以angular的方式工作,特别是通过将其编码到框架中来确保它对data/x工作。如果你在问为什么x对角型起作用,那么这是另一个争论。两者都有很好的理由。请看下面的答案:该页上的另一个答案似乎认为x代表XHTML,但我不确定。看完之后,看看你能从中得到什么。HTML5规范还规定了浏览器/供应商的使用:OP理解它们可以互换使用,但希望知道如果它们工作“相同”,为什么这两个版本可以使用。我相信,解释是什么使他们不同,将是一个更有价值的答案。
<div ng-controller="Controller">
Hello <input ng-model='name'> <hr/>
<span ng-bind="name"></span> <br/>
<span ng:bind="name"></span> <br/>
<span ng_bind="name"></span> <br/>
<span data-ng-bind="name"></span> <br/>
<span x-ng-bind="name"></span> <br/>
</div>