1

我正在开发 Kendo UI Mobile 应用程序(当时仅使用 iOS),目前在应用程序中有 3 个视图。“主”视图有一个 ListView,其他 2 个视图是简单的表单。

列表视图绑定到我在本地存储中的数据,并且有一种获取数据的方法。当应用程序加载时,一切似乎都运行良好,我还可以进行“拉动刷新”,数据会更新。

我想不通的是当视图基本上重新显示时如何刷新列表。用户可以转到其他视图之一并执行某种操作来更新数据,因此当他们返回列表视图时,我希望数据能够自动刷新。

希望这是有道理的?我在appInit下面包含了我的方法,这是最初绑定数据的方法:

function appInit() {
        $("#certificateList").kendoMobileListView({
            pullToRefresh: true,
            dataSource: new kendo.data.DataSource({
                transport: {
                    read: function(options) {
                        var data = Redemptions.getCertificates();
                        options.success(data);
                    },
                    schema: {
                        model: {
                            id: 'id',
                            fields: {
                                id: { type: 'number' },
                                value: { type: 'number', format: '{c2}' }
                            }
                        }
                    }
                }
            }),
            //dataSource: kendo.data.DataSource.create({data: Redemptions.getCertificates() }),
            template: $("#certificateTemplate").html()
        });
    }

我尝试过的事情

  • 使用附加到data-after-show主视图上的方法
  • $('#certificateList').data('kendoMobileListView').refresh();在我的“添加”代码完成并导航回主视图后调用。
4

2 回答 2

4

原来我还需要在 ListViewread()上添加一个。DataSource我的结果代码是:

function refreshCertificates() {
    var certificateList = $('#certificateList').data('kendoMobileListView');
    certificateList.dataSource.read();   // added line
    certificateList.refresh();
}

它会被调用,例如:

if (cert.Status === 1) { // valid
    app.navigate('#certificatesView', 'slide:right');
    refreshCertificates();
}

我选择不在data-after-show属性中使用它,因为有时我执行操作时视图实际上并没有被刷新。

于 2013-08-26T18:07:12.037 回答
1

Kendo 移动视图有一个事件 beforeShow。您应该能够为此添加一个事件处理程序,并在显示视图之前执行您需要的任何操作。

<div id="mainView" data-role="view" data-title="Main Page" data-before-show="mainViewLoad" data-layout="default">

function mainViewLoad() { 
    alert("Main View loaded"); 
}

见 jsbin http://jsbin.com/OBeZeZu/1/edit

剑道在这里查看事件列表 http: //docs.kendoui.c​​om/api/mobile/view#events

于 2013-08-23T17:25:44.743 回答