次のようなリストビューを使用してアイテムのリストを表示しようとしています:
<div data-role="view" data-model="my_model">
<ul data-role="listview" data-bind="source: ds" data-template="list-tmpl"></ul>
</div>
view
と呼ばれるモデルを使用している場所my_model
と、にバインドされているlistview
場所があります。source
ds
私のモデルは次のようなものです:
var my_model = kendo.observable({
ds: new kendo.data.DataSource({
transport: {
read: readData,
update: updateData,
create: updateData,
remove: updateData
},
pageSize: 10,
schema: {
model: {
id: "id",
fields: {
id: { type: "number" },
name: { type: "string" },
active: { type: "boolean" }
}
}
}
})
});
各項目にはid
、name
(つまりstring
) およびboolean
名前付きが含まれactive
ます。
各要素のレンダリングに使用されるテンプレートは次のとおりです。
<script id="list-tmpl" type="text/kendo-tmpl">
<span>#= name # : #= active #</span>
<input data-role="switch" data-bind="checked: active"/>
</script>
name
と (デバッグ用) の値を表示する場所active
。さらに、switch
バインドをにレンダリングしますactive
。
次のように表示されます。
観察された問題は次のとおりです。
active
スイッチをクリックすると、 の横の の値がname
(予想どおり) その値を変更することがわかりますが、別のスイッチを選択すると、値 ( の横でname
も 内でもDataSource
ありません) は更新されません ( の値にもかかわらずスイッチは正しく更新されます)。- DataSourceの
update
ハンドラーは呼び出されません (最初に選択されたスイッチについても呼び出されず、最初に切り替えられたスイッチの DataSource が更新されたにもかかわらず)。
JSFiddle で確認できます: http://jsfiddle.net/OnaBai/K7wEC/
update
DataSource が更新され、ハンドラーが呼び出されるようにするにはどうすればよいですか?