Html 如何使用angularjs在表格网格中根据公式计算金额
am计算员工薪资明细,basic有默认金额,并使用公式根据基本值计算剩余hr、ta等 我已经试过了 am拆分公式和传递值 htmlHtml 如何使用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
斯诺
名称
数量
公式
总价值
{{$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]);
}