У меня возникли проблемы с моим jquery. Кажется, это странно. Это то, что происходит. Я пытаюсь получить уравнение из файла JSON и оценивать с помощью нокаутных наблюдаемых объектов.JQuery и getJson работает только при использовании 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);
});
};
Все работает отлично, если я добавить сигнал перед возвращением().
Eqn.json
{
"eqn":[
{
"Equation":"parseFloat(self.English()) + parseFloat(self.Japanese()) + parseFloat(self.Calculus()) + parseFloat(self.Geometry())"
}
]
}
Data.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"
}
]
}
Полный код находится в here
*** Это асинхронный !!! *** – adeneo
пусть 'self.result' быть простым наблюдаемым, и изменить его значение в функции обратного вызова. – lordvlad