如何更改Angular 4中导航栏中的routerlink?

时间:2017-07-12 13:11:26

标签: javascript angular url routes

我遇到了路由到错误的routelink的问题。怎么避免这个? 抱歉是个菜鸟。

我从Chrome控制台获取的错误是

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL 
Segment: 'oadmin/add-new-student/add-new-teacher'
Error: Cannot match any routes. URL Segment: 
'oadmin/add-new-student/add-new-teacher'

导航按钮的HTML代码

<md-toolbar color="primary" class="toolbar-student">  
<span >
    <button md-button [mdMenuTriggerFor]="menu1">Student</button>
    <md-menu #menu1="mdMenu">
      <button md-menu-item [routerLink]="['add-new-student']" >Add New Student</button>
      <button md-menu-item>Item 2</button>
    </md-menu>
  </span>
  <span >
    <button md-button [mdMenuTriggerFor]="menu2">Teacher</button>
    <md-menu #menu2="mdMenu">
      <button md-menu-item [routerLink]="['add-new-teacher']" >Add New Teacher</button>
      <button md-menu-item>Item 2</button>
    </md-menu>
  </span>
</md-toolbar>

我的路线

var routes = [
  {path: '',
  component: StudentComponent},
  {path: 'oadmin',
  component: OAdminComponent},
  {path: 'oadmin/add-new-student',
  component: NewStudentComponent},
  {path: 'oadmin/add-new-teacher',
  component: NewTeacherComponent},
];

导航栏对于两条路线都很常见。 当我在“添加新学生”路线内部点击“添加新教师”路线时,我收到此错误。反之亦然。怎么避免这个?

2 个答案:

答案 0 :(得分:0)

当您进入Exception in thread "Remoting "management-client" task-5" java.lang.NoSuchMethodError: org.jboss.as.protocol.mgmt.ManagementRequestContext.executeAsync(Lorg/jboss/as/protocol/mgmt/ManagementRequestContext$AsyncTask;)Z at org.jboss.as.controller.client.impl.AbstractModelControllerClient$ReadAttachmentInputStreamRequestHandler.handleRequest(AbstractModelControllerClient.java:211) at org.jboss.as.protocol.mgmt.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:255) at org.jboss.as.protocol.mgmt.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:237) at org.jboss.as.protocol.mgmt.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:124) at org.jboss.as.protocol.mgmt.ManagementChannelReceiver$1.handleMessage(ManagementChannelReceiver.java:56) at org.jboss.as.protocol.mgmt.ManagementChannelReceiver.handleMessage(ManagementChannelReceiver.java:84) at org.jboss.remoting3.remote.RemoteConnectionChannel$5.run(RemoteConnectionChannel.java:463) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) 路径并重定向到oadmin/add-new-student时,您实际上已被重定向到add-new-teacher,因为撰写oadmin/add-new-student/add-new-teacher只需将[routerLink]="['add-new-teacher']"附加到/add-new-teacher目前的网址。相反,你想要的是重定向到oadmin/add-new-teacher而不是:

[routerLink]="['add-new-teacher']"

你应该用这个:

routerLink="/oadmin/add-new-teacher"

你还应该为添加新学生更改它,就像你访问add-new-teacher并点击add-new-student链接一样,你会有同样的错误

<button md-menu-item routerLink="/oadmin/add-new-student" >Add New Student</button>

答案 1 :(得分:0)

在角度4而不是相对路径中,您需要根据index.html页面上的基本href提及完整路径 尝试

[routerLink]="['/oadmin/add-new-teacher']"