2017-07-12 1 views
0

Ich habe das Problem des Routing zu einem falschen Routelink. Wie vermeide ich das? Sorry für ein Noob.Wie ändere ich den Routerlink in der Navigationsleiste in Angular 4?

Der Fehler Ich bin von Chrome Konsole bekommen ist

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-Code von Navigationstasten

<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> 

Meine Routen

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

Navigationsleiste ist für beide Strecken gemeinsam. Wenn ich auf die Route "Neuen Lehrer hinzufügen" klicke, während ich mich in der Route "Neuen Schüler hinzufügen" befinde, erhalte ich diesen Fehler. und umgekehrt. Wie vermeide ich das?

+1

eine andere bearbeiten Genehmigung warten aber bitte die AngularJS Tag zu entfernen, wie es für angular1x Projekte ist – Ero

Antwort

0

Wenn Sie innerhalb des oadmin/add-new-student Weg sind und Sie umleiten add-new-teacher Sie tatsächlich zu oadmin/add-new-student/add-new-teacher umgeleitet werden, weil das Schreiben [routerLink]="['add-new-teacher']" nur /add-new-teacher auf die aktuelle URL anhängt. Stattdessen was Sie wollen, ist zu oadmin/add-new-teacher so umleiten statt:

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

Sie sollten diese verwenden:

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

Und Sie sollten es auch für ändern Add-new-Student, als ob Sie das Add besuchen -neue-Lehrer, und klicken Sie auf Add-new-Student Link haben Sie die gleichen Fehler

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

Danke zu erläutern. –

+0

@SteebanCharles sind herzlich willkommen :) – Dhyey

0

In Winkel 4 statt relativer Pfad müssen Sie den vollständigen Pfad erwähnen nach base href auf index.html p Alter versuchen

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

Vielen Dank für die Erklärung –

Verwandte Themen