为什么在评估Angular表达式时,'ng-value'不起作用,而'value'起作用?即标记{{expression}}?

6 浏览
0 Comments

为什么在评估Angular表达式时,'ng-value'不起作用,而'value'起作用?即标记{{expression}}?

输入金额

1--

2--

3--无效的-

4--有效的

5--有效的

尽管第五个使用ng-value而不使用花括号也有效。

0
0 Comments

问题的出现的原因是使用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;


0