2

我正在使用 Knockoutjs 模板。该页面加载了模板 html 显示一秒钟,然后在加载和绑定 viewModel 后,它会正确显示。处理这个问题的最佳方法是什么?目前我将模板包装在一个设置为 display: none 的 div 中,然后在应用绑定后将其删除。

4

2 回答 2

3

将您的标记包装在脚本标签中:

<script type="text/html" id="viewModelTemplate">
... your markup ...
</script>

然后有一个顶级元素:

<div data-bind="template: {name: 'viewModelTemplate'}"/>

有帮助。

于 2012-05-24T09:25:32.760 回答
0

你什么时候绑定你的视图模型?您是从 AJAX 请求还是事件中执行此操作?如果数据在那里,页面底部的脚本标记应该在显示任何 HTML 之前运行并执行绑定。如果您需要在显示 HTML 后运行绑定,则需要使用您的方法。如果您使用的是 AJAX,我将构建视图模型,以便您绑定到空视图模型并具有isLoaded您在加载完成时设置的属性,然后您可以绑定到它:

<div data-bind="visible: isLoaded">...</div>
于 2012-05-24T05:14:32.220 回答