第一次渲染模板工作正常。它按预期显示:
导航回来并再次导航到同一个屏幕时,会导致以下内容丢失列表格式:
为什么会发生这种情况以及如何防止它?
以下是模板定义:
<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");
答案 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将在数据更改后自动重新呈现模板。