Javascript 如何在telerik kendo移动应用程序中设置刷新数据源的按钮?

Javascript 如何在telerik kendo移动应用程序中设置刷新数据源的按钮?,javascript,kendo-ui,telerik,refresh,Javascript,Kendo Ui,Telerik,Refresh,我正在尝试在我的应用程序的顶部条带上创建一个刷新按钮,如果不使用“拉到刷新”的方式,我就找不到任何关于如何操作的好信息。下面是我在这里的一个示例应用程序: 以下是一些示例代码: HTML JS var数据={ “所有文章”:[{“id”:1,“trunc_title”:“title for 1”,“content”:“Lorem ipsum door sit amet,Concertetur adipiscing elite.Nullam id placerat nisl.In fin

我正在尝试在我的应用程序的顶部条带上创建一个刷新按钮,如果不使用“拉到刷新”的方式,我就找不到任何关于如何操作的好信息。下面是我在这里的一个示例应用程序: 以下是一些示例代码:

HTML


    JS

    var数据={
    “所有文章”:[{“id”:1,“trunc_title”:“title for 1”,“content”:“Lorem ipsum door sit amet,Concertetur adipiscing elite.Nullam id placerat nisl.In finibus scelerisque temporal.nuc eleifend quam risus,lacinia freenum dui tincidut previda.

    ,“列表日期”:“2015-10-31 11:08:00”,“缩略图”:”http://placehold.it/640x360},{“id”:2,“2的标题”,“内容”:“Lorem ipsum Door sit amet,Concertetur Adipising Elite.Nullam id placerat nisl.In finibus scelerisque Temporal.Nunc eleifend quam risus,lacinia fermentum dui Tincident gravida.

    ,“列表日期”:“2015-10-31 11:08:00”,“缩略图”:http://placehold.it/640x360},{“id”:3,“trunc_title”:标题为3,“内容”:“Lorem ipsum dolor sit amet,Concertetur adipiscing elite.Nullam id placerat nisl.In finibus scelerisque temporal.Nunc eleifend quam risus,lacinia breatum dui tincidut previda.

    ”,“列表日期”:“2015-10-31 11:08:00”,“缩略图”:”http://placehold.it/640x360},{“id”:4,“trunc_title”:“1的标题”,“内容”:Lorem ipsum dolor sit amet,是一位杰出的建筑设计师。在临时修女权杖中,怀孕期间发酵的拉契尼亚酒中,未标明日期:“2015-10-31 11:08:00”,“缩略图”:http://placehold.it/640x360},{“id”:5,“trunc_title”:“2的标题”,“内容”:Lorem ipsum dolor sit amet,是一位杰出的建筑设计师。在临时修女权杖中,怀孕期间发酵的拉契尼亚酒中,未标明日期:“2015-10-31 11:08:00”,“缩略图”:http://placehold.it/640x360},{“id”:6,“trunc_title”:“3的标题”,“内容”:Lorem ipsum dolor sit amet,是一位杰出的建筑设计师。在临时修女权杖中,怀孕期间发酵的拉契尼亚酒中,未标明日期:“2015-10-31 11:08:00”,“缩略图”:http://placehold.it/640x360"}] }; /* 我从一个外部站点中提取它,如下所示: viewModel[i]=新剑道。可观察({ 新闻项目:新建kendo.data.DataSource({ 运输:{ 阅读:{ url:serviceURL, 数据类型:“jsonp” } }, 模式:{ 数据:“员额” } }) } }); */ var viewModel=新剑道。可观察({ 新闻项目:新建kendo.data.DataSource({ 数据:data.AllArticles }), selectedStory:{}, 选择标题:功能(e){ e、 预防默认值(); var story=e.dataItem; story.dateString=story.date.toLocaleDateString(); viewModel.set(“selectedStory”,story); 应用程序导航(“详细信息页”); } }); var app=new kendo.mobile.Application(document.body,{skin:'flat});

    我正在从另一个站点提取数据。我刚刚创建了模拟数据,以便您可以查看示例。任何帮助都将不胜感激。

    您应该能够添加一个按钮,比如标题或类似的按钮,用于调用viewmodel上的函数。如果viewmodel绑定到远程json源,则只需调用.read()在数据源上重新获取数据会导致它重新获取数据。如果手动获取数据,则需要手动重新获取数据,然后在数据源上调用.read()

    下面是一个快速示例,它使用一个方法将一个项添加到源中(假装有一个新的数据项),然后在数据源上调用read


    我就是这样做的。我看不出它是否有效,因为y还没有发布新文章,但我没有收到任何错误消息$(“#刷新”)。在(“单击”,function(){console.log(“working”);viewModel.neswItems.read();});
    <div data-role="view" id="home" data-title="Headlines" data-model="viewModel">
        <ul id ="homeList" data-role="listview" data-style="inset" class="newslist" data-template="storyList-template" 
            data-bind="source: newsItems, 
                       events: { 
                           click: selectHeadline}">
        </ul>
    </div>
    <div data-role="view" id="crime" data-title="Headlines" data-model="viewModel">
        <ul data-role="listview" data-style="inset" class="newslist" data-template="storyList-template" data-bind="source: newsItems, events: { click: selectHeadline }"></ul>
    </div>
    
      <script type="text/x-kendo-template" id="storyList-template">
            <a href="\\#">
                <div class="storyImg" id="#: id #" style=" background-image: url( #:thumbnail# ); margin-top: 0;">
                </div>
                <div class="blackBox">
                    <div class="storyTitle">#: trunc_title #</div>
                    <div class="timeStamp">#: list_date #</div>
                </div>
            </a>
        </script>
    
    var data = {
            "AllArticles": [{ "id": 1,"trunc_title": "Title for 1","content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id placerat nisl. In finibus scelerisque tempor. Nunc eleifend quam risus, lacinia fermentum dui tincidunt gravida. </p>", "list_date": "2015-10-31 11:08:00","thumbnail": "http://placehold.it/640x360"},{"id": 2,"trunc_title": "Title for 2","content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id placerat nisl. In finibus scelerisque tempor. Nunc eleifend quam risus, lacinia fermentum dui tincidunt gravida. </p>","list_date": "2015-10-31 11:08:00", "thumbnail": "http://placehold.it/640x360" }, { "id": 3, "trunc_title": "Title for 3", "content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id placerat nisl. In finibus scelerisque tempor. Nunc eleifend quam risus, lacinia fermentum dui tincidunt gravida. </p>","list_date": "2015-10-31 11:08:00","thumbnail": "http://placehold.it/640x360"},{ "id": 4,"trunc_title": "Title for 1","content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id placerat nisl. In finibus scelerisque tempor. Nunc eleifend quam risus, lacinia fermentum dui tincidunt gravida. </p>", "list_date": "2015-10-31 11:08:00","thumbnail": "http://placehold.it/640x360"},{"id": 5,"trunc_title": "Title for 2","content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id placerat nisl. In finibus scelerisque tempor. Nunc eleifend quam risus, lacinia fermentum dui tincidunt gravida. </p>","list_date": "2015-10-31 11:08:00", "thumbnail": "http://placehold.it/640x360" }, { "id": 6, "trunc_title": "Title for 3", "content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id placerat nisl. In finibus scelerisque tempor. Nunc eleifend quam risus, lacinia fermentum dui tincidunt gravida. </p>","list_date": "2015-10-31 11:08:00","thumbnail": "http://placehold.it/640x360"}]
        };
    
    /*
    
    I am pulling it from an external site like this:
    
    viewModel[i] = new kendo.observable({
                newsItems: new kendo.data.DataSource({
                    transport: {
                        read: {
                            url: serviceURL,
                            dataType: "jsonp"
                        }
                    },
                    schema: {
                        data: "posts"
                    }
                })
                }
            });
    
    
    */
    var viewModel = new kendo.observable({
      newsItems: new kendo.data.DataSource({
        data: data.AllArticles
      }),
      selectedStory: {},
      selectHeadline: function(e) {
        e.preventDefault();
        var story = e.dataItem;
        story.dateString = story.date.toLocaleDateString();
        viewModel.set("selectedStory", story);
        app.navigate("#detailsPage");
      }
    });
    
    var app = new kendo.mobile.Application(document.body, {skin: 'flat'});