什么是ng-model和ng-value之间的区别

Div*_* MV 38 javascript angularjs angularjs-directive angularjs-ng-model angularjs-ng-value

据我所知,ng-model设置了分配模型的特定元素的值.鉴于ng-value与ng-model有何不同?

JcT*_*JcT 27

它与ng-model结合使用; 对于无线电和选择,它是在选择该项目时设置为ng-model的值.使用它作为元素的'value'属性的替代,它将始终将字符串值存储到关联的ng-model.

在单选按钮的上下文中,它允许您使用非字符串值.例如,如果您有单选按钮'是'和'否'(或等效),其值为'true'和'false' - 如果使用'value',存储在ng-model中的值将成为字符串.如果你使用'ng-value',它们将仍然是布尔值.

但是,在select元素的上下文中,请注意ng值仍将始终视为字符串.要为select设置非字符串值,请使用ngOptions.


Pan*_*kar 13

简单描述

NG-模型

  1. 用于变量的双向绑定,可以在范围和html上使用.
  2. 其中$modelValue(值位于实际范围内)&$viewValue(视图中显示的值).
  3. 如果你在带有name属性的表单上提到,那么angular会在内部创建验证属性,如$ error,$ valid,$ invalid等.

例如.

<input type="text/checkbox/radio/number/tel/email/url" ng-model="test"/>
Run Code Online (Sandbox Code Playgroud)

NG-值

  1. 用于为各自的ng-model值分配值input, select&,textarea(同样可以通过使用ng-init)
  2. ng-value如果您ng-model通过ajax 设置值而写入value属性不支持它,则会提供良好的绑定
  3. 基本上意味着在动态创建选项时使用radio&optiontag select.
  4. 它只能string有价值,它不支持对象值.

HTML

<input
  [ng-value="string"]>
...
</input>
Run Code Online (Sandbox Code Playgroud)

要么

<select ng-model="selected">
  <option ng-value="option.value" ng-repeat="option in options">
     {{option.name}}
  </option>
</select>
Run Code Online (Sandbox Code Playgroud)

...