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>
根据文档,ngValue
采用“角表达式,其值将绑定到元素的value
属性input
”。
因此,当您使用时ng-value="hard"
,它将被解释为一个表达式,并且value
被绑定到$scope.hard
(可能是undefined
)。
ngValue
对于评估表达式很有用-value
与设置硬编码值相比没有优势。但是,如果您想使用硬编码值ngValue
,则必须将其包含在''
:
ng-value="'hard'"
更新:
与V1.6开始,ngValue
也将设置value
属性的元素(除了value
属性)。它可能不会影响您的用例,但这是另一个需要牢记的差异。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句