我正在制作一个网站,并且使用KO JavaScript来显示“登录并注册”(如果用户未登录)或“注销”(如果用户已登录)。所有功能均正常运行,但是我的问题是页面加载时显示所有内容其中的5分之一秒,直到整个页面正确加载为止,然后触发并插入正确的语句。这看起来不太好,我真的希望它立即执行,因为它会影响我的UI。有人帮忙吗?
这是我的代码。
<!--ko ifnot: Logged()-->
<a href="logged" class="ShowLogged">Log in</a>
<!--/ko-->
<!-- ko ifnot:Logged()-->
<a href="register" class="ShowRegister"> Register</a>
<!--/ko-->
<!-- ko if: Logged() -->
<a href="#" class="ShowLog" data-bind="click: Logged.Loggedout"> Log Out</a>
<!--/ko-->
您可以使用template
绑定来渲染该部分:
<!-- ko template: { name: 'logged-links'} -->
<!-- /ko -->
<script id="logged-links" type="text/html">
<!--ko ifnot: Logged()-->
<a href="logged" class="ShowLogged">Log in</a>
<a href="register" class="ShowRegister"> Register</a>
<!--/ko-->
<!-- ko if: Logged() -->
<a href="#" class="ShowLog" data-bind="click: Logged.Loggedout">
Log Out
</a>
<!--/ko-->
</script>
在时间元素之间由浏览器呈现并被ko.applyBindings
调用(在您的情况下为5秒),<!-- ko -->
绑定被忽略,并且您的链接被视为普通的html标记。
通过将这些链接放在<script>
标签中,浏览器将不会渲染它们,但一旦ko.applyBindings
调用就会删除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句