【问题标题】:NavigationError subscriber is undefinedNavigationError 订阅者未定义
【发布时间】:2018-07-18 13:40:18
【问题描述】:

我正在使用 jhipster 4.13.3 和 angular 5

使用在线页面生成的jhipster项目,做了一个“jhipster import-jdl”命令来生成实体。到目前为止,该应用程序运行良好。

然后我开始添加我的业务逻辑。我更新了生成的实体 component.ts 和 html 文件。此外,将以下代码添加到 navbar.component.html

    <li *jhiHasAnyAuthority="'ROLE_MANAGER'" ngbDropdown class="nav-item dropdown pointer" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}">
        <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="manager-menu">
            <span>
                <i class="fa fa-user-plus" aria-hidden="true"></i>
                <span>Manager</span>
            </span>
        </a>
        <ul class="dropdown-menu" ngbDropdownMenu>
            <li>
                <a class="dropdown-item" routerLink="task-group" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }" (click)="collapseNavbar()">
                    <i class="fa fa-fw fa-user" aria-hidden="true"></i>
                    <span>List of task groups</span>
                </a>
            </li>
        </ul>
    </li>

    <li *jhiHasAnyAuthority="['ROLE_MANAGER','ROLE_EDITOR','ROLE_TRANSCRIPT']" ngbDropdown class="nav-item dropdown pointer" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}">
        <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="my-task-menu">
            <span>
                <i class="fa fa-user-plus" aria-hidden="true"></i>
                <span>My tasks</span>
            </span>
        </a>
        <ul class="dropdown-menu" ngbDropdownMenu>
            <li>
                <a class="dropdown-item" routerLink="task" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }" (click)="collapseNavbar()">
                    <i class="fa fa-fw fa-user" aria-hidden="true"></i>
                    <span>List of tasks</span>
                </a>
            </li>
        </ul>
    </li>

请注意,我没有创建任何新路线。我指的是创建 routerLink 的实体。

在运行应用程序后,点击几下后,我收到以下错误。单击我创建的菜单项后发生错误。我在屏幕上只看到页眉和页脚。

路由器事件:NavigationError platform-b​​rowser.js:380 NavigationError(id:2,url:'/user-info',错误:TypeError:订阅者 未定义)platform-b​​rowser.js:367 {…} 错误:TypeError:订阅者 未定义堆栈跟踪:[object Object] id:2 url:“/user-info” proto: Object { 构造函数: NavigationError(), toString: NavigationError.prototype.toString() }

我应该将路由定义设为“全局”吗?如果有,怎么做?

非常感谢您在解决路由器问题方面的任何帮助。

【问题讨论】:

    标签: angular angular2-routing jhipster


    【解决方案1】:

    我犯的错误是,直接在实体目录下或任何已生成的实体下创建组件和服务类。后来我用这些新组件更新了路由器。可能这会使路由器定义迷失方向。

    作为修复,我创建了模块并在它们下放置了组件和服务。这是我为自己准备的笔记。

    • ng g m new-module --routing
    • 在新目录中添加组件、服务和其他工件
    • 导出 index.ts 文件中的组件
    • 将 SharedModule 和 Service 添加到 new-module.module.ts
    • 将路由添加到 new-module-routing.module.ts
    • 在路由模块中写入 ResolvePagingParams。 (参见生成实体中的示例)
    • 将 NewModule 添加到 ../entity.module.ts
    • 更新 webapp\app\layouts\navbar\navbar.component.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 2022-10-13
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多