Ответ 1
В соответствии с docs, ngValue
принимает выражение angular, значение которого будет связанный с атрибутом value
элемента input
".
Итак, когда вы используете ng-value="hard"
, он интерпретируется как выражение, а value
привязан к $scope.hard
(что, вероятно, undefined
). ngValue
полезен для оценки выражений - у него нет преимуществ перед value
для установки жестко заданных значений. Тем не менее, если вы хотите жестко закодировать значение с помощью ngValue
, вы должны заключить его в ''
:
ng-value="'hard'"
UPDATE:
Начиная с v1.6, ngValue
также установит свойство value
элемента (в дополнение к атрибуту value
). Это может не повлиять на ваш usecase, но это еще одна разница, стоит иметь в виду.