一尘不染

如何在AngularJS中对两个字段求和并在标签中显示结果?

angularjs

我的页面上有情况。

我的页面上有两个输入和一个标签。这些标签必须显示这两个输入值的总和。

所以我尝试了以下解决方案:

Sub-Total
<input type="text" ng-model="Property.Field1" />
Tax
<input type="text" ng-model="Property.Field2" />
Total
<label>{{ Property.Field1 + Property.Field2  }}</label>

在第一时间,当页面加载完全以,标签显示的总和,但是当我在任何输入键入一些值,
这些soution给我的串联结果Property.Field1Property.Field2,而不是总和

所以我尝试了这些:

Sub-Total
<input type="text" ng-model="Property.Field1" />
Tax
<input type="text" ng-model="Property.Field2" />
Total
<label>{{ parseFloat(Property.Field1) + parseFloat(Property.Field2)  }}</label>

再没有成功。

如何获得标签中显示的两个输入的总和?


阅读 350

收藏
2020-07-04

共1个答案

一尘不染

您实际上parseFloat在控制器中创建了一个方法吗?因为您不能在Angular表达式中简单地使用JS,所以请参阅Angular
Expressions与JS Expressions

function controller($scope)
{
    $scope.parseFloat = function(value)
    {
        return parseFloat(value);
    }
}

编辑:也应该可以简单地设置对原始功能的引用:

$scope.parseFloat = parseFloat;

我也希望它可以与过滤器一起使用,但是不幸的是它不能(可能是一个错误,或者我误解了过滤器的工作方式):

<label>{{ (Property.Field1|number) + (Property.Field2|number) }}</label>

一种解决方法是对乘法使用乘法:

<label>{{ (Property.Field1 * 1) + (Property.Field2 * 1) }}</label>
2020-07-04