Я пытаюсь отобразить список элементов с помощью списка, например:
<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
) не обновится ( несмотря на то, что значение переключателя корректно обновляется). - Обработчик
update
в DataSource никогда не вызывается (даже для первого выбранного переключателя и несмотря на то, что DataSource для этого первого переключенного переключателя обновляется).
Вы можете проверить это в JSFiddle: http://jsfiddle.net/OnaBai/K7wEC/
Как сделать так, чтобы DataSource обновлялся и вызывался обработчик update
?