我目前正在尝试扩展KnockoutJS 购物车示例以预加载 JSON 集合中的现有行。
说,我有一个这样的对象:
var existingRows = [{
"Category":Classic Cars,
"Product":2002 Chevy Corvette,
"Quantity":1,
}, {
"Category":Ships,
"Product":Pont Yacht,
"Quantity":2,
}];
我正在尝试修改示例,以便在加载时用两行填充网格,组合框预设为 JSON 对象中的项目。
我似乎无法让这个对象与 JSFiddle 很好地配合使用,但我已经修改了 Cart 和 CartLine 函数,并且 ApplyBindings 调用如下:
var CartLine = function(category, product) {
var self = this;
self.category = ko.observable(category);
self.product = ko.observable(product);
// other code
}
var Cart = function(data) {
var self = this;
self.lines = ko.observableArray(ko.utils.arrayMap(data, function(row) { return new CartLine(row.Category, row.Product);}))
// other code
}
ko.applyBindings(new Cart(existingRows));
这会在加载时正确插入两行,但不会设置下拉列表。任何帮助将非常感激 :)