javascript angularjs angularjs-scope angularjs-ng-repeat angularjs-service

javascript - ¿Cuál es la diferencia entre el atributo `value` y los atributos` ng-value` en angularjs



angularjs-scope angularjs-ng-repeat (1)

¿Cuál es la diferencia entre el value y ng-value atributos de ng-value en las plantillas de angularjs? Si uso ng-if en el campo usando el atributo value, funciona correctamente, pero si cambio el value del atributo a ng-value , deja de funcionar.

example 1 // it works <input type=''radio'' ng-model=''difficulty'' value=''hard''/> <div ng-if="difficulty == ''hard''"> <p>difficulty is hard</p> </div> Example 2 // it doesn''t work <input type=''radio'' ng-model=''level'' ng-value=''hard''/> <div ng-if= "level == ''hard''" > <p>level is hard</p> </div>


Según los documentos , ngValue toma una "expresión angular, cuyo valor se vinculará al atributo de value del elemento de input " .

Entonces, cuando usa ng-value="hard" , se interpreta como una expresión y el value está enlazado a $scope.hard (que probablemente undefined esté undefined ).
ngValue es útil para evaluar expresiones; no tiene ninguna ventaja sobre el value para establecer valores codificados. Sin embargo, si desea codificar un valor con ngValue , debe ngValue en '''' :

ng-value="''hard''"

ACTUALIZAR:
A partir de v1.6, ngValue también establecerá la propiedad de value del elemento (además del atributo de value ). Puede que no afecte su caso de uso, pero es otra diferencia que vale la pena tener en cuenta.