0

我有一个动态创建的列表视图。数据源的模式也在改变应用程序中的操作。所以模式也是动态创建的。

我的问题是,我无法更新模板。

我的代码是

        if (queryResultsFirstLoad) {

            queryResultsFirstLoad = false;


            e.view.element.find("#queryResultsViewUl").kendoMobileListView({
                template : '<a>' + listInnerHtml + '</a>',
                dataSource : kendo.data.DataSource.create(data),
                click : function(e) {
                    if (e.dataItem) {
                        queryResultItemClick(e);
                    }
                }
            });

        } else {


            $("#queryResultsViewUl").data("kendoMobileListView").setDataSource(data);
            var newTemplate = kendo.template(listInnerHtml);
            $("#queryResultsViewUl").html(newTemplate(data));



        }

第一次加载时它工作正常。但是当它第二次加载时,我无法更新列表视图的模板。

4

1 回答 1

0

我找不到只更改模板的方法。另一个选择是破坏 kendoListView .. 它有效

            if (!queryResultsFirstLoad) {

                var listView = $("#queryResultsViewUl").data("kendoMobileListView");
                // detach events
                listView.destroy();             
            } else {

                queryResultsFirstLoad = false;

            }

            e.view.element.find("#queryResultsViewUl").kendoMobileListView({
                template : '<a>' + listInnerHtml + '</a>',
                dataSource : kendo.data.DataSource.create(data),
                click : function(e) {
                    if (e.dataItem) {
                        queryResultItemClick(e);
                    }
                }
            });
于 2014-12-09T13:00:41.313 回答