我的 jquery 有问题。它似乎表现得很奇怪。这就是正在发生的事情。我试图从 JSON 文件中获取一个方程,并用剔除可观察对象进行评估。
奇怪的是,它只在我使用任何 alert('') 消息时才有效,没有它,它就不起作用。
我用谷歌搜索了我的问题,我得到的答案是关于 ajax 调用。但我在这里使用 jQuery 函数 $getJSON
代码
function loadData(fileName) {
var data = $.getJSON( fileName + ".json");
return(data);
}
var res = 0;
var Student = function(data) {
var self = this;
ko.mapping.fromJS(data, { }, self);
var res = 0;
self.result = ko.computed(function() {
loadData("Eqn").done(function(data1) {
if (data1 && data1.eqn) {
$.each(data1.eqn, function(key, value){
var str = value.Equation;
res = eval (str);
});
}
});
return(res);
});
};
如果我在 return() 之前添加警报,一切正常。
eqn.json
{
"eqn":[
{
"Equation":"parseFloat(self.English()) + parseFloat(self.Japanese()) + parseFloat(self.Calculus()) + parseFloat(self.Geometry())"
}
]
}
数据.json
{
"info":[
{
"Name":"Noob Here",
"Major":"Language",
"Sex":"Male",
"English":"15",
"Japanese":"5",
"Calculus":"0",
"Geometry":"20"
},
{
"Name":"Noob Here",
"Major":"Calculus",
"Sex":"Female",
"English":"0.5",
"Japanese":"40",
"Calculus":"20",
"Geometry":"05"
}
]
}
完整的代码在这里