Javascript angularjs中的'value'属性和'ng value'属性有什么区别

Javascript angularjs中的'value'属性和'ng value'属性有什么区别,javascript,angularjs,angularjs-scope,angularjs-ng-repeat,angularjs-service,Javascript,Angularjs,Angularjs Scope,Angularjs Ng Repeat,Angularjs Service,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

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>
example 1//
困难是困难的

例2//它不起作用 水平很难

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

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


更新:

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

好的,这意味着当我键入
ng value='hard'
时,它将搜索
$scope.hard
但当我键入'value='hard'时,它会将值'hard'分配给该字段。谢谢,ng value=false怎么样?在这种情况下,它被解释为字符串
false
,而不是
scope.false
。它被解释为布尔值false,并在分配给属性
值时转换为字符串。这取决于Angular的解析器的工作方式。@ExpertSystem那么
ng value=“someExpression”
与更简单的:
value={{{someExpression}}
?@MarcusJuniusBrutus:大多数情况下它不会(有一些非常细微的差异,它们确实超出了本文的范围)。但是,我要再次指出,
ng value=“someExpr”
value=“{{someExpr}}”
更简单。基本上,每当我有一个表达式要计算时,我都会使用
ngValue
,当值为常量时,我会使用
value
ng-value="'hard'"