编程语言
首页 > 编程语言> > javascript – angularjs中`value`属性和`ng-value`属性之间的区别是什么

javascript – angularjs中`value`属性和`ng-value`属性之间的区别是什么

作者:互联网

angularjs模板中值和ng值属性之间有什么区别?如果我在使用value属性的字段上使用ng-if,它可以正常工作,但如果我将属性值更改为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>

解决方法:

根据the docs,ngValue采用“角度表达式,其值将绑定到输入元素的value属性”.

因此,当您使用ng-value =“hard”时,它被解释为表达式,并且该值绑定到$scope.hard(可能未定义).
ngValue对于计算表达式很有用 – 它对于设置硬编码值没有优势.但是,如果要使用ngValue对值进行硬编码,则必须将其括在”中:

ng-value="'hard'"

更新:
从v1.6开始,ngValue还将设置元素的value属性(除了value属性).它可能不会影响您的用例,但这是值得记住的另一个区别.

标签:javascript,angularjs,angularjs-scope,angularjs-ng-repeat,angularjs-service
来源: https://codeday.me/bug/20190928/1827957.html