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

興味があれば、私はこれを解決することを試みることができます。

それ以外の場合は、バインディングで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>

サンプル: http: //jsfiddle.net/rniemeyer/6SEzp/

于 2012-12-18T16:00:44.293 に答える