4

我正在用 Kendo、Knockout 和 kendo-knockoutjs 库做一些实验。我想将淘汰视图模型与剑道数据源一起使用,并将其绑定到剑道网格小部件。

在剑道:

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);

http://jsfiddle.net/zeQMT/71/

我想要完成的事情:

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);

http://jsfiddle.net/zeQMT/72/

显然,这不起作用,因为 knockoutjs 没有source绑定。是否可以创建名为的自定义绑定source,以便当前示例可以工作?任何有关工作代码的帮助将不胜感激。谢谢!

4

1 回答 1

5

我很久以前开始了一个分支来处理直接传入 kendo.data.DataSource 引用,但从未完成修复:https ://github.com/rniemeyer/knockout-kendo/issues/6

如果有兴趣,那么我可以尝试解决这个问题。

否则,您可以在绑定中定义数据源(或传入一个对象)。像:

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>

示例:http: //jsfiddle.net/rniemeyer/6SEzp/

于 2012-12-18T16:00:44.293 回答