重用kendo-ui模板

时间:2013-01-08 14:42:50

标签: javascript kendo-ui

第一次渲染模板工作正常。它按预期显示:

enter image description here

导航回来并再次导航到同一个屏幕时,会导致以下内容丢失列表格式:

enter image description here

为什么会发生这种情况以及如何防止它?

以下是模板定义:

<div data-role="view" data-layout="app" data-title="Time Card" id="screen1">
</div>
<script type="text/x-kendo-template" id="template1">
    Heading
    <ul data-role="listview" data-style="inset" data-type="group"> 
        <ul data-role="listview">
            Group 1
            # for (var i = 0; i < data.headers.length; i++) { #
                <li><a>#= data.heades[i].Item #</a></li>
            # } #
        </ul>
        <ul data-role="listview">
            Group 2
            <li>hello</li>
            <li>goodbye</li>
        </ul>
    </ul>
</script>

以下是填充模板并导航到模板的代码:

var templateContent = $("#template1").html();
var template = kendo.template(templateContent);
var data = {headers: headers};
$("#screen1").html(template(data));
app.navigate("#screen1");

1 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为您正在替换不受支持的View的HTML。例如,更改后不会重新初始化窗口小部件。

$("#screen1").html(template(data)); //html replacement of the View's content is not supported

我的建议是bind the widget to a DataSource并使用API methods来更改内容。 ListView将在数据更改后自动重新呈现模板。