ng-model和data-ng-model之间的区别

Har*_*ari 31 angularjs

我是AngularJs的新手.谁能说出ng-model和data-ng-model之间的区别呢?

使用ng-model

First Name  :  <input type="text" ng-model="fname" id="fname">
Second Name :  <input type="text" ng-model="lname" id="lname">  
Run Code Online (Sandbox Code Playgroud)

使用data-ng-model

First Name  :  <input type="text" data-ng-model="fname" id="fname">
Second Name :  <input type="text" data-ng-model="lname" id="lname">  
Run Code Online (Sandbox Code Playgroud)

Alw*_*ner 66

而这两个ng-modeldata-ng-model会的工作,HTML5希望通过前缀任何自定义属性data-.

<!-- not HTML5 valid -->
<input type="text" ng-model="name">

<!-- HTML5 valid -->
<input type="text" data-ng-model="name">
Run Code Online (Sandbox Code Playgroud)

  • 这应该作为正确的答案. (5认同)

Jam*_*ice 12

他们是一样的.角度data-从属性中剥离部分.来自文档:

Angular规范化元素的标记和属性名称,以确定哪些元素与哪些指令匹配...规范化过程如下:

  1. 剥离x-data-从元素/属性的前面.
  2. 转换:,-_-delimited名camelCase.


Sur*_*iya 8

有什么区别ng-modeldata-ng-model,如果你在AngularJs方面看.

实际上,' data '用作验证HTML5验证的前缀.因此,使用它是一种好习惯data-ng-model,但也可以使用ng-model.这也没有问题.

两者具有相同的含义,并且都具有相同的输出:

使用ng-model

First Name  :  <input type="text" ng-model="fname" id="fname">
Second Name :  <input type="text" ng-model="lname" id="lname">  
Run Code Online (Sandbox Code Playgroud)

使用data-ng-model

First Name  :  <input type="text" data-ng-model="fname" id="fname">
Second Name :  <input type="text" data-ng-model="lname" id="lname">  
Run Code Online (Sandbox Code Playgroud)


syl*_*ter 7

最佳实践:首选使用划线分隔格式(例如ng-bind为ngBind).如果要使用HTML验证工具,则可以使用数据前缀版本(例如,ngBind的data-ng-bind).上面显示的其他表单因遗留原因而被接受,但我们建议您避免使用它们.