angularjs模板中的value
和ng-value
属性有什么区别?如果我使用值属性在字段上使用ng-if
它可以正常工作,但如果我将属性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>
答案 0 :(得分:26)
根据 the docs ,ngValue
采用&#34;角度表达式,其值将绑定到value
属性input
元素&#34; 。
因此,当您使用ng-value="hard"
时,它会被解释为表达式,value
绑定到$scope.hard
(可能是undefined
)。
ngValue
对于评估表达式很有用 - 它比value
没有优势来设置硬编码值。但是,如果您想使用ngValue
对值进行硬编码,则必须将其括在''
中:
ng-value="'hard'"
<强>更新强>
从v1.6开始,ngValue
还会设置元素的value
属性(除value
属性外)。它可能不会影响您的用例,但值得记住的另一个区别是。