1

下拉刷新有问题。它第一次起作用,但是如果我更改为不同的视图,然后回到原始视图,则Pull to refreshRelease to refresh文本似乎被复制并重叠在自身上。我在这里“硬编码”数据源的数据,我不想使用传输 ajax。

我正在尝试手动更新setOptions pull方法中的数据,而不是让 Kendo 通过 ajax 更新它。实际的数据更新有效。没有 Javascript 错误,我在 Chrome 和 Firefox 中得到相同的结果。

第一次工作:

在此处输入图像描述

移动到另一个视图后,再回到这个视图,然后拉下:

在此处输入图像描述

我的视图代码是:

<div id="subitem-view" data-role="view" data-show="showSubItems">
    <div data-role="header">
        <div data-role="navbar">

        </div>
    </div>
    <ul id="subItemList" class="itemList">
    </ul>
    <script id="subItemTemplate" type="text/x-kendo-template">
       #:Name#
    </script>
</div>

Javascript:

function showSubItems(e) {

    var subItems = new kendo.data.DataSource({
        data: [
            { Name : "Test1" },
            { Name : "Test2" }
        ] 
    });

    e.view.element.find("#subItemList").kendoMobileListView({
        dataSource: subItems,
        pullToRefresh: true,
        template: kendo.template($("#subItemTemplate").html())
    });

    if (typeof (e.view.scroller.pull) == "undefined") {
        e.view.scroller.setOptions({
            pull: function () {
                console.log("pull event...");

                subItems.data([
                    { Name : "Test1 Updated" },
                    { Name : "Test2 Updated" }
                ]);

                setTimeout(function () { e.view.scroller.pullHandled(); }, 400);
            }
        });
    }
}
4

1 回答 1

2

您在每个 View 显示上初始化 Kendo UI Mobile ListView,这会导致不可预知的结果,例如重新创建拉动以刷新标签。您应该只在 Init 事件中执行此操作。

于 2013-03-20T23:02:47.563 回答