我已经在这里http://jsfiddle.net/NHpEH将 Handsontable 与 KnockoutJS 集成。
ko.bindingHandlers.handsontable = {
init: function (element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor(); // TODO: what happens if value is null?
var allBindings = allBindingsAccessor();
var colHeaders = allBindings.colHeaders() || true;
var data = allBindings.handsontable();
// TODO: make options customizable
$(element).handsontable({
data: data,
minRows: value().length || 5,
minCols: value()[0].length || 5,
minSpareCols: 0,
minSpareRows: 1,
colHeaders: colHeaders,
contextMenu: true,
onChange: function (data, source) {
var headers = $(element).handsontable("getColHeader")
var tableData = $(element).handsontable("getData");
value(tableData);
allBindings.colHeaders(headers);
}
});
$(element).handsontable("loadData", value());
},
update: function (element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
var allBindings = allBindingsAccessor();
var colHeaders = allBindings.colHeaders();
$(element).handsontable("updateSettings", {
minRows: value().length,
minCols: value()[0].length
});
}
};
但我想将计算出的 observable 作为单元格数据放入单元格中。例如,我想显示一个单元格中两个其他单元格的总和。
任何想法将不胜感激。