KendoUI移动交换机和数据源

时间:2014-06-06 10:04:36

标签: kendo-ui kendo-mobile kendo-datasource

我试图使用listview显示项目列表,例如:

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

每个项目都包含idnamestring}和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

您应该看到类似的内容:

enter image description here

观察到的问题是:

  1. 如果您点击一个开关,您会看到active旁边的name值会更改其值(如预期的那样),但如果是,则选择另一个开关,该值(下一个未更新nameDataSource)(尽管交换机的值已正确更新)。
  2. 永远不会调用DataSource中的update处理程序(即使第一个选择的交换机也是如此,尽管第一个切换开关的DataSource已更新)。
  3. 您可以在JSFiddle中查看它:http://jsfiddle.net/OnaBai/K7wEC/

    如何让DataSource更新并调用update处理程序?

1 个答案:

答案 0 :(得分:1)

好的,解决方案非常简单:在autoSync定义中将true设置为DataSource

var my_model = kendo.observable({
    ds: new kendo.data.DataSource({
        transport: {
            read: readData,
            update: updateData,
            create: updateData,
            remove: updateData
        },
        autoSync: true,
        pageSize: 10,
        schema: {
            model: {
                id: "id",
                fields: {
                    id: { type: "number" },
                    name: { type: "string" },
                    active: { type: "boolean" }
                }
            }
        }
    })
});

请参阅此处修改的JSFiddle:http://jsfiddle.net/OnaBai/K7wEC/1/