我正在使用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-browser.js:380 NavigationError(id:2,url:'/ user-info',错误:TypeError:订阅者 未定义)platform-browser.js:367 {...}错误:TypeError:subscriber 未定义堆栈跟踪:[object Object] id:2 url:“/ user-info” proto :Object {constructor:NavigationError(),toString:NavigationError.prototype.toString()}
我应该将路由定义“全局”吗?如果是这样,怎么样?
非常感谢您解决路由器问题的任何帮助。
答案 0 :(得分:1)
我犯的错误是直接在实体目录下或任何已生成的实体下创建组件和服务类。后来我用这些新组件更新了路由器。可能这会使路由器定义迷失方向。
作为修复,我创建了模块并在其下放置了组件和服务。这是我为自己准备的笔记。