是否有一种简单的方法可以清除视图并在屏幕上加载或等待...以便用户获得一些反馈,知道它在ajax内容加载之前一直有效?
现在当我点击导航到子路线的东西并且该子路线加载一个必须在activate()中执行大量操作的模块时,它不会切换导航或清除屏幕或给出任何向用户反馈它正在工作,我看到他们反复点击多次并感到沮丧,然后只是当他们想要放弃时,页面加载得很好。
我想为我的应用程序制作此默认功能,而不必在每个模块或每个页面上做一些特殊的事情,这可能吗?
感谢。
答案 0 :(得分:3)
您是否尝试过使用router.isNavigating?原始Durandal模板包含这样的微调器:
<div class="loader pull-right" data-bind="css: { active: router.isNavigating }">
<i class="icon-spinner icon-2x icon-spin"></i>
</div>
答案 1 :(得分:2)
很大一部分时间,您正在寻找的内容可以通过以下方式获得:
<div data-bind="compose:ActiveVm">
<div class="text-center" style="margin : 75px">
<i class="fa fa-spinner fa-spin"></i>
</div>
</div>
内部div可以是任何任意标记,它将在视图模型进行激活时显示。
请注意,这当前仅在第一次创建此dom部分时显示占位符内容。如果您的应用程序部分通过可观察的viewmodel + compose方法进行更新,则可以使用此方法:
Durandal: Showing a 'LOADING...' during composition
对于将来访问的任何人来说,如果需要原生支持,这个问题可能值得一试: