简单的durandal请等待加载微调器

时间:2013-12-20 22:31:40

标签: durandal

是否有一种简单的方法可以清除视图并在屏幕上加载或等待...以便用户获得一些反馈,知道它在ajax内容加载之前一直有效?

现在当我点击导航到子路线的东西并且该子路线加载一个必须在activate()中执行大量操作的模块时,它不会切换导航或清除屏幕或给出任何向用户反馈它正在工作,我看到他们反复点击多次并感到沮丧,然后只是当他们想要放弃时,页面加载得很好。

我想为我的应用程序制作此默认功能,而不必在每个模块或每个页面上做一些特殊的事情,这可能吗?

感谢。

2 个答案:

答案 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

对于将来访问的任何人来说,如果需要原生支持,这个问题可能值得一试:

https://github.com/BlueSpire/Durandal/issues/414