У меня возникли некоторые проблемы в связывании динамически создаваемые элементы DOMKnockout JS: Связывание динамических строк
Код:
var i=0;
$.each(data.info, function(index, element) {
$("#div1").append("<tr><td>" + element.Name + "</td><td>"+ element.Major +"</td><td>" + element.Sex +"</td><td>" + "<input data-bind='value: eng"+i+"' ></td><td>" + "<input data-bind='value: jap"+i+"' ></td><td>" + "<input data-bind='value: cal"+i+"' ></td><td>" + "<input data-bind='value: geo"+i+"' ></td><td>" + "<strong data-bind='text: total'></td>")
i++;
});
Это создает строку со значениями входных данных связываемых eng0, ENG1, jap0, jap1 и т.д.
Я хочу, чтобы связать эти наблюдаемые
Код
function AppViewModel() {
this.eng = ko.observable(element.English);
this.jap = ko.observable(element.Japanese);
this.cal = ko.observable(element.Calculus);
this.geo = ko.observable(element.Geometry);
this.total = ko.computed(function() {
var tot=parseFloat(this.eng()) + parseFloat(this.jap()) + parseFloat(this.cal()) + parseFloat(this.geo());
return (tot);
}, this);
}
ko.applyBindings(new AppViewModel());
Этот код также внутри $.each(data.info, function(index, element){}
Я хочу, чтобы некоторые вещи, как
Var i=0;
$.each(data.info, function(index, element) {
function AppViewModel() {
this.eng+i = ko.observable(element.English);
this.jap+i = ko.observable(element.Japanese);
this.cal+i = ko.observable(element.Calculus);
this.geo+i = ko.observable(element.Geometry);
this.total+i = ko.computed(function() {
var tot=parseFloat(this.eng()) + parseFloat(this.jap()) + parseFloat(this.cal()) + parseFloat(this.geo());
return (tot);
}, this);
}
i++;
}
Это заставляй меня привести this.eng0 = ko.observable()
Примечание: данные получены из объекта JSON. Я только включил итерационный путь
Thanx. Я хотел бы знать, есть ли способ, чтобы я мог привязывать наблюдаемые к динамическим элементам, точно так же, как eng + 1. – Okky
Я не уверен, что вы подразумеваете под «eng + 1» или «динамическими элементами»? Возможно, вам стоит попробовать, что вы хотите, и спросите о следующем вопросе, если вы застряли. – Jeroen