我正在尝试利用淘汰赛来创建一个可编辑的表格。我有一个 JSON 对象,其中包含标题和表格数据的集合。该表需要使用任何对象构建。它将遍历 JSON 对象以创建 ko.observableArray 和 ko.observables 来填充它。我已经能够做到这一点。我的问题是 ko.observables 没有被数据绑定。
这是我的 JavaScript 的一个片段:
EditableTableVM.prototype.load = function() {
this.headings = this.buildKO_ObservableArray(new Heading(), this.dataRepo.HEADINGS);
this.listings = this.buildKO_ObservableArray(new Listing(), this.dataRepo.LISTINGS);
}
/*
* Dynamically creates a ko.observableArray from a JS array
* Params: JSClass - new instance of a class
* Params: baseArray - array of objects to create the observable array
* Returns: Observable arary of JS object with ko.observables
*/
EditableTableVM.prototype.buildKO_ObservableArray = function(JSClass, baseArray) {
var newArray = ko.observableArray([]);
for(var i = 0, j = baseArray.length; i < j; i++) {
var baseObj = baseArray[i];
//new class is the class with ko.observables properties
var newClass = this.buildKO_Observable(JSClass, baseObj);
newArray.push(newClass);
}
return newArray;
}
/*
* Dynamically create ko.observable from properties in an object
* Params: JSClass - new instance of a class
* Params: jsObject - object to created observables with
* Returns: JS object with ko.observables
*/
EditableTableVM.prototype.buildKO_Observable = function(JSClass, jsObj) {
for (var key in jsObj) {
if (jsObj.hasOwnProperty(key)) {
JSClass[key] = ko.observable(jsObj[key]);
}
}
return JSClass;
}
这是我的 Fiddle http://jsfiddle.net/breck421/YFNLX/,它的工作达到了我之前描述的程度。
我不确定我正在尝试做的事情是否可能,并且真的很感激另一组对此的看法。
谢谢,
约旦