.each()和eval()的问题

时间:2013-04-17 09:34:47

标签: javascript jquery json knockout.js eval

我正在使用Knockout来创建使用来自json对象

的数据评估的公式
var EqunCreated = ["Salary", "Tax", "Gross_Salary"];

$.each(EqunCreated, function (index, lhs) {
    var Equation = "self." + lhs + "=ko.computed(function(){ return self.Eqn() && eval(self.Eqn()).toFixed(2); })";
    console.log(eval("self." + lhs + "=ko.computed(function(){ return self.Eqn() && eval(self.Eqn()).toFixed(2); })"));
    console.log(lhs);
});

我在这里遇到问题。得到错误

function h(){if(0<arguments.length)return"function"===typeof v?v.apply(d,arguments):j(Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.")),this;n||g();b.r.Wa(h);return l}

但如果我评估self.Eqn()我会得到正确答案。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

不太确定自己是什么,但我认为你不需要使用eval

var EqunCreated = ["Salary", "Tax", "Gross_Salary"];

$.each(EqunCreated, function (index, lhs) {
    var Equation = self[lhs] = ko.computed(function(){ return self.Eqn() && parseFloat(self.Eqn()).toFixed(2); });

    console.log(Equation());
});