【问题标题】:How do I change the jhipster default ("/") page?如何更改 jhipster 默认 ("/") 页面?
【发布时间】:2017-07-11 23:30:51
【问题描述】:

我创建了一个 angular 2 模块并将其成功路由到“仪表板”。我想用我的模块替换默认的 jHipster 主页,但我似乎无法让它工作。我需要知道关于主路由或主组件或路由是否有什么特别之处才能将它们换成不同的模块?

顺便说一句,我想使用 jHipster 作为我的 angular2/webpack/spring-boot 应用程序的基础,但是我很难找到所有花里胡哨的文档。一个全面参考的建议(如果有的话,将不胜感激)

TIA!

【问题讨论】:

  • JHipster 仅记录其特定部分,因此所有标准部分均由底层技术(angular、spring boot、jpa、spring security、webpack)记录

标签: angular jhipster


【解决方案1】:

1st通过搜索确定路由路径

路径:''

你会在 app/home/home.route.ts 中找到它

将您选择的一些字符添加到空字符串中,以将 Jhipster 主组件放在不同的 URI 路径上。

因为它被设置为一个空字符串,如果没有指定 URI,它是默认显示的。

第二,如果你想将不同的组件设置为默认值,你需要创建一个新模块(“dashboard.module”)、组件(“dashboard.component”)和路由(“dashboard.route”),你可以使用 home 组件作为代码参考。

在新的登陆页面路由(dashboard.route.ts)中设置一个空字符串作为路径

路径:''

第三次在 app.module 和 viola 中注册模块。

【讨论】:

    【解决方案2】:

    这是你要求的吗?如何修改 JHipster 主页?

    这不是“换掉”的。生成后我开始修改 JHipster 应用程序。 Gael 提供了很好的答案,但我认为您期待 Angular 课程。 JHipster 提供的强大功能是您的应用程序的模板。由你来修改它。

    【讨论】:

    • 我想这会奏效,这就是我要去的地方。我曾认为 JHipster 已经足够抽象,我可以切换路线,但我想还有更多。谢谢
    【解决方案3】:

    要在登录后重定向,您应该更改 login.component.ts 文件中的 login()。 添加

    this.router.navigate(['dashboard']);

            login () {
            this.loginService.login({
                username: this.username,
                password: this.password,
                rememberMe: this.rememberMe
            }).then(() => {
                this.authenticationError = false;
                this.activeModal.dismiss('login success');
                if (this.router.url === '/register' || this.router.url === '/activate' ||
                    this.router.url === '/finishReset' || this.router.url === '/requestReset') {
                    this.router.navigate(['']);
                }
    
                this.eventManager.broadcast({
                    name: 'authenticationSuccess',
                    content: 'Sending Authentication Success'
                });
    
                // // previousState was set in the authExpiredInterceptor before being redirected to login modal.
                // // since login is succesful, go to stored previousState and clear previousState
                let previousState = this.stateStorageService.getPreviousState();
                if (previousState) {
                    this.stateStorageService.resetPreviousState();
                    this.router.navigate([previousState.name], { queryParams:  previousState.params });
                }
                this.router.navigate(['dashboard']); // <-Add here
    }).catch(() => {
                this.authenticationError = true;
            });
        }
    

    我也有疑问,您是否设法在仪表板上放置了两个实体组件?

    【讨论】:

    • 我实际上有兴趣用我的仪表板换掉主页。首先,即使没有登录。如果我切换路线,因此 home.route.ts 的路径是“home”,而 dashboard.route.ts 的路径是“”,我希望我的新主页是仪表板,但事实并非如此。 WRT你的第二个问题。我仍在研究基础知识,还没有尝试向仪表板添加功能。
    • 我也对这个 b/c 投了反对票,它没有回答我关于如何更改主页的问题。不过很高兴知道
    【解决方案4】:

    这取决于你想怎么做,JHipster 会生成代码,然后由你来修改它。

    • 最简单的方法是修改src/main/webapp/app/home下生成的文件,它定义了*HomeModule。然后yo jhipster:upgradecommand 将尽最大努力在将 JHipster 代码更新到较新版本时使用 git merge 保留您的修改。
    • 或者,您可以决定保持生成的*HomeModule 不变,使用相同的组件选择器添加一个新的,并将其在src/main/webapp/app/app.module.ts 中对*HomeModule 的引用替换为您的新模块。

    【讨论】:

    • 我不确定解决方案 1 或 2 的工作原理。我将 home.route 的路径更改为“home”,将 dahboard.route 的路径更改为“”。那是行不通的。你能详细说明吗?你能详细说明解决方案2吗? app.module 导入 JHipster2HomeModule 和我的新 DashboardModule。 app.module 何时何地决定使用一个而不是另一个??
    • 您不需要在两个选项中更改主路由的路径,因为只有一个主模块处于活动状态。在选项 2 中,app.module 应该只导入您的 DashboardModule,而不是 JHipster2HomeModule。
    • 如果我将名为“home”的模块重定向到不同的路径/路由,这有什么关系?
    • 我只是在描述不需要修改路由和避免组件选择器冲突的方法。我没有看到足够多的代码来假装一种方法是否更好。欢迎分享更多代码。
    • 那我一定是遗漏了什么。如果我完全删除了对 HomeModule (JHipsterHomeModule) 的所有应用程序引用,我仍然没有;将默认页面转到 DashboardComponent。我注意到 app.module 引导 JhiMainComponent。 main/main.component.ts 中是否有我不明白的东西正在这样做?
    猜你喜欢
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多