问题描述
根据 ,ngValue
采用“角表达式,其值将绑定到 元素的value
属性input
”。
因此,当您使用时ng-
value="hard"
,它将被解释为一个表达式,并且value
被绑定到$scope.hard
(可能是undefined
)。ngValue
对于评估表达式很有用- value
与设置硬编码值相比没有优势。但是,如果您想使用硬编码值ngValue
,则必须将其包含在''
:
ng-value="'hard'"
与V1.6开始,ngValue
也将设置value
的元素(除了value
属性)。它可能不会影响您的用例,但这是另一个需要牢记的差异。
解决方法
angularjs模板中的value
和ng-value
属性之间有什么区别?如果我ng-
if
在使用value属性的字段上使用它,则它正常工作,但是如果我将该属性更改value
为ng-value
它,它将停止工作。
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>