Javascript angularjs中的'value'属性和'ng value'属性有什么区别
angularjs模板中的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
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'"