在Angular2中设置页面更改的加载指示器

时间:2016-06-27 07:04:47

标签: javascript angular

我确实创建了一个指令,在页面仍在加载时在整个页面上设置一个加载指示符(微调器)。我的指令只有一个参数:是否应该显示微调器:<div class="app-container" [busy]=!pageLoaded>

在我的app组件中,我在构造函数中完成了以下操作:

    this.pageLoaded = false
    router.subscribe((routeName: String) => {
        /* Other stuff */
        this.pageLoaded= true
    })

每次路由器更改时(每个页面从一个页面到另一个页面),都会调用此router.subscribe。唯一的问题是,我的pageLoaded将保持其真正的价值。如何在不触发busy指令的情况下将其设置为false?

1 个答案:

答案 0 :(得分:0)

我通常做的事情:路线变化非常快。我假设你想为路线做一些解决(数据获取),对吧?所以在这种情况下我创建了一个http处理程序,它在请求启动时增加本地计数器,并在请求结束/失败时减少它。虽然计数器是gt 0 show loader。

在特殊情况下,如果您不想显示加载程序,我通常会将其作为配置提供给请求对象,并根据此设置决定如何处理计数器。

此致