Kendo ui 剑道UI移动刷新列表视图显示

Kendo ui 剑道UI移动刷新列表视图显示,kendo-ui,kendo-mobile,Kendo Ui,Kendo Mobile,我正在开发一个剑道UI移动应用程序,当时只使用iOS,目前该应用程序中有3个视图。主视图有一个ListView,其他两个视图是简单的表单 列表视图绑定到本地存储中的数据,并具有获取数据的方法。当应用程序加载时,一切似乎都很好,我也可以做一次拉刷新,数据也会更新 我不明白的是,当视图基本上重新显示时,如何刷新列表。用户可以转到其他视图中的一个,并执行某种操作来更新数据,因此当他们返回列表视图时,我希望数据自动刷新 希望这有意义?我已经在下面介绍了我的appInit方法,它最初是绑定数据的: fun

我正在开发一个剑道UI移动应用程序,当时只使用iOS,目前该应用程序中有3个视图。主视图有一个ListView,其他两个视图是简单的表单

列表视图绑定到本地存储中的数据,并具有获取数据的方法。当应用程序加载时,一切似乎都很好,我也可以做一次拉刷新,数据也会更新

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

希望这有意义?我已经在下面介绍了我的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()
        });
    }
我尝试过的事情

在主视图上显示后使用附加到数据的方法 正在调用$'certificateList'。数据'kendoMobileListView'。刷新;添加代码完成并导航回主视图后。
剑道移动视图在展示前有一个事件。您应该能够为此添加eventhandler,并在显示视图之前执行任何需要的操作

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

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


剑道视图事件列表在这里

剑道移动视图在显示之前有一个事件。您应该能够为此添加eventhandler,并在显示视图之前执行任何需要的操作

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

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


这里的剑道视图事件列表

证明我还需要在ListView的数据源上添加读取。我的结果代码是:

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

我选择不让它出现在“显示后的数据”属性中,因为有时执行操作时,视图实际上没有刷新。

结果表明,我还需要为ListView的数据源添加读取。我的结果代码是:

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

我选择不让它出现在“显示后的数据”属性中,因为有时我执行操作时,视图实际上没有刷新。

我以前遇到的问题是视图中的列表似乎不可用,不是正确的词,但目前无法想出正确的术语。它说方法刷新在var certificateList=$'certificateList'。数据'kendoMobileListView'上不可用;什么时候创建ListView对象,是在文档就绪状态,还是在应用程序初始化状态?您可以在节目结束后尝试,也可以在节目结束前尝试,但设置超时$listView.datakendoListView.refresh,200;我已经创建了UL,然后在AppInit上连接ListView。不过我没想过设置超时,我想我会试一试。谢谢我以前遇到的问题是,视图中的列表似乎不可用,不是正确的词,但目前无法想出正确的术语。它说方法刷新在var certificateList=$'certificateList'。数据'kendoMobileListView'上不可用;什么时候创建ListView对象,是在文档就绪状态,还是在应用程序初始化状态?您可以在节目结束后尝试,也可以在节目结束前尝试,但设置超时$listView.datakendoListView.refresh,200;我已经创建了UL,然后在AppInit上连接ListView。不过我没想过设置超时,我想我会试一试。谢谢