为什么在评估Angular表达式时,'ng-value'不起作用,而'value'起作用?即标记{{expression}}?
问题的出现的原因是使用Angular表达式时,如果使用ng-value指令,表达式会被视为Angular代码,可以直接解释dollar1和dollar2为作用域变量。AngularJS会处理ng-value指令,并将结果添加/设置到相应的input元素的value属性中。而使用内置的value属性,则需要使用花括号来注入Angular代码。在这种情况下,AngularJS会将表达式{{dollar1 * dollar2}}替换为它的结果。不起作用的示例不起作用,因为AngularJS指令已经期望某些真实的程序代码,这些代码不能以花括号开始,而应直接以可解释的代码开始。
解决方法:
要解决这个问题,可以考虑以下两种方法:
1. 使用ng-value替代value属性,将表达式直接写在ng-value指令中,而不是使用花括号注入Angular代码。
2. 如果必须使用value属性,可以将表达式写在控制器中,并在HTML中使用{{}}来注入控制器中的变量。
下面是两种方法的示例代码:
方法1:
方法2:
$scope.result = dollar1 * dollar2;