1

我正在使用 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()我会得到正确的答案。

如何解决这个问题?

4

1 回答 1

0

不太确定 self 是什么,但我认为您不需要使用 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());
});
于 2013-04-17T09:38:55.450 回答