我正在使用Knockoutjs模板。页面加载了模板html显示一小段时间,然后在加载和绑定viewModel之后,它正确显示。处理这个问题的最佳方法是什么?目前我将模板包装在一个设置为display:none的div中,然后在应用绑定后删除它。
答案 0 :(得分:3)
将标记包装在脚本标记中:
<script type="text/html" id="viewModelTemplate">
... your markup ...
</script>
然后有一个顶级元素:
<div data-bind="template: {name: 'viewModelTemplate'}"/>
可以提供帮助。
答案 1 :(得分:0)
您何时绑定视图模型?你是从AJAX请求还是事件中做到的?如果数据存在,则应在页面底部运行脚本标记,并在显示任何HTML之前执行绑定。如果需要在显示HTML后运行绑定,则需要使用方法。如果您正在使用AJAX,我将构建视图模型,以便绑定到空视图模型并具有在加载完成时设置的isLoaded
之类的属性,然后您可以绑定它:
<div data-bind="visible: isLoaded">...</div>