如何在不刷新窗口的情况下从后端重新加载数据?

时间:2018-11-25 10:42:46

标签: angular

我已经定义了一条路由foo/:id/edit,以使用几个进行服务调用的解析器。

对此视图执行一些操作后,我想重新加载从那些解析器收集的数据,而不刷新整个页面。

我已经读过here,我不应该手动呼叫解析器。但是也许还有另一种方式。

1 个答案:

答案 0 :(得分:1)

我所做的是导航到与我使用的相同的URL:

this.router.navigate([this.router.url]);

但是为了触发解析器,必须添加runGuardsAndResolvers: 'always'才能将配置和onSameUrlNavigation: 'reload'路由到app-routing.module

@NgModule({
    imports: [
        RouterModule.forRoot(
            [
            { useHash: true, enableTracing: DEBUG_INFO_ENABLED, onSameUrlNavigation: 'reload', scrollPositionRestoration: 'disabled' }
        )
    ],

值得注意的是scrollPositionRestoration: 'disabled',它可以使我的滚动位置保持完整。我已经知道它自Angular 6.1起可用。

您可以添加refresh=1或类似的URL来代替上面的配置,这样解析器将立即被触发。

SO answers的启发。