我有一个类似a+b+1500+c
或a*b+1500
的公式,任何数学表达式我都有a,b和c的值,
并且我在角度脚本中声明了a,b,c的值。如何在表达式中推送a,b,c值
我已经尝试但没有在我之前的问题中发布,但没有回复,
你能否建议如何进行这个公式计算
我有文本框,在更改此文本框时我想要计算公式并绑定结果
视图
Formula:<input type="text" ng-model="Formula" ng-blur="CalculateFormula(Formula)" />
{{result}}
角
var a = 12;
var b = 20;
var c = 8;
$scope.CalculateFormula = function (Formula) {
//on change am getting formula here ex. a+b+1500+c how to push a, b, c values in this expression
}
你能建议怎么做吗
答案 0 :(得分:0)
如果您希望用户在框中输入有效的数学公式并将结果发布到{{result}}
变量,那么您需要做的就是:
$scope.CalculateFormula = function (Formula) {
//on change am getting formula here ex. a+b+1500+c how to push a, b, c values in this expression
$scope.result = eval(Formula);
}
这适用于任何有效的数学公式,包括a,b和c变量,例如* b + c(结果= 248)
答案 1 :(得分:0)
检查工作plnkr http://plnkr.co/edit/e5Ts95hFvx3rcVguefzs?p=preview
计算公式
$scope.CalculateFormula = function(formula){
$scope.result = eval(formula);
}
答案 2 :(得分:0)
仅仅是一个FYI,在用户输入上使用eval会带来一些相当大的安全风险......例如,如果你输入
alert('test')
你会注意到字符串被评估为javascript并弹出一个警告。这允许用户在这个不安全的输入上运行他们想要的任何JS。
因此,您应该在使用eval之前先验证输入。像MathJS这样的东西会为你处理这个验证。
使用MathJS eval的示例:
$scope.CalculateFormula = function (Formula) {
//on change am getting formula here ex. a+b+1500+c how to push a, b, c values in this expression
$scope.result = math.eval(Formula);
}
MathJS还有许多其他有用(和安全)的助手,可用于常见的数学运算。