我正在使用Kendo,Knockout和kendo-knockoutjs库进行一些实验。我想使用带有kendo数据源的knockout视图模型并将其绑定到kendo网格小部件。
在剑道:
HTML:
<div id="main">
<div id="reportGrid" data-bind="source: gridDataSource"></div>
</div>
的javascript:
var billingReportViewModel = kendo.observable({
gridDataSource: new kendo.data.DataSource({data:[{name:"Apple", color:"green"},{name:"Banana", color:"yellow"}]})
});
$("#reportGrid").kendoGrid();
kendo.bind($("#main"), billingReportViewModel);
我想要完成的事情:
html与上面的示例相同。
的javascript:
var billingReportViewModel = ko.observable({
gridDataSource: new kendo.data.DataSource({data:[{name:"Apple", color:"green"},{name:"Banana", color:"yellow"}]})
});
$("#reportGrid").kendoGrid();
ko.applyBindings(billingReportViewModel);
很明显,这不起作用,因为knockoutjs没有source
绑定。是否可以创建名为source
的自定义绑定,以便当前示例有效?任何有关工作代码的帮助将不胜感激。谢谢!
答案 0 :(得分:5)
我不久前开始分支处理直接传递kendo.data.DataSource引用,但从未完成修复:https://github.com/rniemeyer/knockout-kendo/issues/6
如果有兴趣,那么我可以尝试解决这个问题。
否则,您可以在绑定中定义dataSource(或传入对象)。像:
var billingReportViewModel = ko.observable({
gridDataSource: {data:[{name:"Apple", color:"green"},{name:"Banana", color:"yellow"}]}
});
然后,绑定如:
<div id="reportGrid" data-bind="kendoGrid: { data: undefined, dataSource: gridDataSource }"></div>