Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html ng应用程序与数据ng应用程序的区别是什么?_Html_Angularjs - Fatal编程技术网

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-

  • 原因:ng模型和数据ng模型都是相同和等效的



  • Angular规范化元素的标记和属性名称,以确定哪些元素与哪些指令匹配。我们通常通过区分大小写的规范化名称引用指令(例如,
    ngModel
    )。但是,由于HTML不区分大小写,我们在DOM中以小写形式引用指令,通常使用DOM元素上的属性(例如
    ng model
    )。

    规范化过程如下所示:
    1.从元素/属性的前面剥离
    x-
    数据-

    2.将
    -
    分隔名称转换为
    camelCase


    例如
    以下形式均为等效形式,并符合ngBind指令:

    
    你好






    如果您想使页面HTML有效,您可以使用数据ng-,而不是ng-。

    如果您想在服务器上操作HTML或HTML片段,然后再将其提供给浏览器,您最肯定的是要使用数据ng xxx属性,而不仅仅是ng xxx属性

  • 它使您的html有效,这意味着它可以被诸如domdocument(php)或其他html(基于服务器的)解析器使用。这些解析器常常在格式不好的html上失败
  • Angular规范化属性,但请记住,这是在客户机上,而不是在服务器上

  • 的可能重复,但它这样做只是为了与指令名进行比较。它不会改变实际的属性。很高兴知道-、:和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>