我是淘汰赛的忠实粉丝。我现在将其用于我的所有Web开发,并且很喜欢它。我无法弄清的一件事是如何在构建基因敲除js绑定时隐藏UI。
例如,我有一个非常健壮的用户界面,页面上使用了许多模板。我注意到的问题是,当用户首次访问该页面时,他们会在一秒钟内看到我的所有模板,然后才开始绑定并隐藏它们。
解决此问题的最佳方法是什么?我曾尝试使用帮助器类来隐藏它们,但是除非我删除了帮助器类引用(即ui-helper-hidden),否则无法使用“可见”和“ if”绑定显示模板。
Answers:
您可以在此处使用几种策略。
-一种方法是将所有实际内容放入脚本标记中的模板中(与本机模板配合正常)。然后,您可以在模板中使用控制流绑定。就像:
<div data-bind="template: 'contentTmpl'"></div>
<script id="contentTmpl" type="text/html">
<ul data-bind="foreach: items">
<li data-bind="text: name"></li>
</ul>
</script>
-另一个选择是style="display: none"
在容器元素上使用visible
可绑定到loaded
可观察对象true
的绑定,在已应用绑定之后将可观察对象更改为可观察对象。
loaded
可观察对象的工作方式。您需要与一起添加style="display: none"
容器元素visible: loaded
,然后在应用绑定后将其切换为true。的visible
结合将删除display: none
(无法控制什么是你的CSS)。
display:none
而僵尸程序可能无法拾取。
我只是在谷歌上搜索,使用可观察的方式后,我想到了另一种方法:
<div style="display: none" data-bind="visible: true">
<ul data-bind="foreach: items">
<li data-bind="text: name"></li>
</ul>
</div>
您不需要可观察的对象,完成数据绑定后,可见对象将始终评估为true。
<ul data-bind="foreach: items, visible: true"> <li data-bind="text: name"></li> </ul>
<div data-bind='visible: false'> Screen loading... </div>
<div class="beforeReady" data-bind="css: {ready: true}">
如果您想做css动画来显示它(例如不透明之类的东西),就可以做