下拉以在Kendo-UI中刷新,文本重叠显示“释放”和“拉”标签

时间:2013-03-20 12:33:44

标签: javascript kendo-ui kendo-mobile

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

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

第一次工作:

enter image description here

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

enter image description here

我的观看代码是:

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

1 个答案:

答案 0 :(得分:2)

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