首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新所有组件工艺路线

刷新所有组件工艺路线
EN

Stack Overflow用户
提问于 2019-01-02 05:49:32
回答 1查看 217关注 0票数 0

我想让一个angular 7网站具有响应性。我有两个非常不同的布局,而不是用CSS Media查询隐藏所有这些不必要的HTML,我创建了两个组件,一个对应于较大的桌面版本,另一个对应于手机和较小显示器的版本。所以我做了两个不同的路由:

代码语言:javascript
复制
const dekstop: Routes = [
    {
        path: '',
        component: HomePageComponent
    },
    ...
];

const mobile: Routes = [
    {
        path: '',
        component: MobileHomePageComponent
    },
   ...
];

目前,我在load和resize事件中更改了它们:

代码语言:javascript
复制
@NgModule({
    imports: [RouterModule.forRoot(dekstop)],
    exports: [RouterModule]
})

export class AppRoutingModule {

    mobileConfigured = false;

    public constructor(private router: Router,
                       private device: DeviceService) {

        if (device.isMobile()) {
            router.resetConfig(mobile);
            this.mobileConfigured = true;
        }

        window.onresize = () => {

            if (this.mobileConfigured && !this.device.isMobile()) {
                window.location.reload();
                return;
            }

            if (this.device.isMobile() && !this.mobileConfigured) {
                window.location.reload();
            }
        };
    }
}

但这种方法的效率很低,因为它会在组件更改时重新加载页面。有没有办法不用重新加载整个页面就可以重新加载它们?

EN

回答 1

Stack Overflow用户

发布于 2019-01-03 00:56:46

我通过这样做让它工作了

代码语言:javascript
复制
@NgModule({
    imports: [RouterModule.forRoot(desktop, {onSameUrlNavigation: 'reload'})],
    exports: [RouterModule]
})

然后再用下面的代码来欺骗它:

代码语言:javascript
复制
this.router.navigate([this.router.url]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53999215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档