Html 如何使用angularjs在表格网格中根据公式计算金额

Html 如何使用angularjs在表格网格中根据公式计算金额,html,angularjs,Html,Angularjs,am计算员工薪资明细,basic有默认金额,并使用公式根据基本值计算剩余hr、ta等 我已经试过了 am拆分公式和传递值 html 斯诺 名称 数量 公式 总价值 {{$index+1}} {{e.Name}} {{e.Amount}} {{e.Formula}} {{e.TotalValue}} 棱角的 $scope.EmployeeData = [{ Id: 1, Name: 'Basic', Amount: 100, Formula: '', TotalValue: 0 }, { Id

am计算员工薪资明细,basic有默认金额,并使用公式根据基本值计算剩余hr、ta等 我已经试过了 am拆分公式和传递值

html


斯诺
名称
数量
公式
总价值
{{$index+1}}
{{e.Name}}
{{e.Amount}}
{{e.Formula}}
{{e.TotalValue}}
棱角的

$scope.EmployeeData = [{ Id: 1, Name: 'Basic', Amount: 100, Formula: '', TotalValue: 0 }, { Id: 2, Name: 'HR', Amount: 0, Formula: '<Basic>*10/100', TotalValue: 0 },
    { Id: 3, Name: 'TA', Amount: 0, Formula: '<Basic>+500', TotalValue: 0 }]

$scope.Employees = [];
var data = $scope.EmployeeData;
for (i = 0; i < data.length; i++) {
    if (data[i].Formula !== "") {
        $scope.Matches = data[i].Formula.replace("<", "").replace(">", ",").replace("+", "+,").replace("*", "*,").replace("-", "-,").split(',');
        $scope.Item1 = $scope.Matches[0];
        $scope.arithmeticOperator = $scope.Matches[1];
        $scope.Item2 = $scope.Matches[2];
        if ($scope.Item1 == 'Basic') {
            if ($scope.arithmeticOperator == '*') {
                data[i].TotalValue = (($scope.Value) * (eval($scope.Item2)));
            }
            else if ($scope.arithmeticOperator == '+') {
                data[i].TotalValue = (($scope.Value) + (eval($scope.Item2)));
            }
            else if ($scope.arithmeticOperator == '/') {
                data[i].TotalValue = (($scope.Value) / (eval($scope.Item2)));

            }
            else if ($scope.arithmeticOperator == '-') {
                data[i].TotalValue = (($scope.Value) - (eval($scope.Item2)));

            }
        }
//...
//like basic am given conditions for HR,TA 
    }
    else {
        $scope.Value = data[i].Amount;
    }

    //pushing data in table
    $scope.Employees.push(data[i]);
}
$scope.EmployeeData=[{Id:1,名称:'Basic',金额:100,公式:'',总值:0},{Id:2,名称:'HR',金额:0,公式:'*10/100',总值:0},
{Id:3,名称:'TA',金额:0,公式:'+500',总值:0}]
$scope.Employees=[];
var数据=$scope.EmployeeData;
对于(i=0;i
能够通过使用此项计算总价值, 但这是计算公式的正确方法吗, 如果像
+100++
,++
++
这样的公式, 如何在算术表达式上计算公式 我的代码将仅限于此表达式
“*100”

$scope.EmployeeData = [{ Id: 1, Name: 'Basic', Amount: 100, Formula: '', TotalValue: 0 }, { Id: 2, Name: 'HR', Amount: 0, Formula: '<Basic>*10/100', TotalValue: 0 },
    { Id: 3, Name: 'TA', Amount: 0, Formula: '<Basic>+500', TotalValue: 0 }]

$scope.Employees = [];
var data = $scope.EmployeeData;
for (i = 0; i < data.length; i++) {
    if (data[i].Formula !== "") {
        $scope.Matches = data[i].Formula.replace("<", "").replace(">", ",").replace("+", "+,").replace("*", "*,").replace("-", "-,").split(',');
        $scope.Item1 = $scope.Matches[0];
        $scope.arithmeticOperator = $scope.Matches[1];
        $scope.Item2 = $scope.Matches[2];
        if ($scope.Item1 == 'Basic') {
            if ($scope.arithmeticOperator == '*') {
                data[i].TotalValue = (($scope.Value) * (eval($scope.Item2)));
            }
            else if ($scope.arithmeticOperator == '+') {
                data[i].TotalValue = (($scope.Value) + (eval($scope.Item2)));
            }
            else if ($scope.arithmeticOperator == '/') {
                data[i].TotalValue = (($scope.Value) / (eval($scope.Item2)));

            }
            else if ($scope.arithmeticOperator == '-') {
                data[i].TotalValue = (($scope.Value) - (eval($scope.Item2)));

            }
        }
//...
//like basic am given conditions for HR,TA 
    }
    else {
        $scope.Value = data[i].Amount;
    }

    //pushing data in table
    $scope.Employees.push(data[i]);
}