Redirect zu einer neuen Seite in Eckigen 2-Routing
Habe ich ein Szenario sagen Startseite(app.Komponente.ts mit main.html), die weitergeleitet wird, als Standard
app.Komponente.ts
@RouteConfig([
{path: '/',name : 'Home' , component : HomeComponent , useAsDefault: true },
{path: '/user', name : 'User' , component : UserComponent },
{path: '/about', name : 'About' , component : AboutComponent},
{path : 'contact', name : 'Contact' , component : ContactComponent}
])
main.html
<a [routerLink]="['/Home']">Home</a>
<a [routerLink]="['/User']">User Login</a>
<a [routerLink]="['/About']">About</a>
<a [routerLink]="['/Contact']">Contact</a>
<router-outlet></router-outlet>
Nun sagen wir für 2-Komponenten möchte ich die route über den router Steckdose, aber für die User, ich möchte die route zu einem gesamten neuen Seite ich.e nicht in die router-Steckdose . Ich habe versucht navigate
und navigateByUrl
nicht funktioniert, es immer noch lädt es in den <router-outlet>
. Bitte nicht schlagen window.href
Ive versucht, mithilfe der Redirect-Klasse in angular2/router , aber nicht in der Lage zu tun das nötige.
- Was ist eine "ganze neue Seite"? Eine andere Angular2 Anwendung (externer link)?
- Nein, dass würde ich einfach verwenden
window.location.href='www.goggle.com'
oder die<a href='www.google.com'></a>
, aber ja die ähnliche Art von Funktionalität zu einer internen Komponente(innen Eckig 2-Anwendung) ist das, was ich will. - Wenn Sie wissen, wie man mit, ich hoffe, Sie können mir sagen, danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE: Der ganze router-Konfigurations-code in dieser Antwort ist für einen router veraltet ist und entfernt über 6/2016
Ich denke, was Sie wollen, sind untergeordnete Routen - sehen Plunker
Aktualisiert Plunker mit navigation verschoben
Page1
wo die Eltern route erlaubt das Umschalten zwischen
Page1
undPage2
,Page1
erlaubt das Umschalten zwischenAbout
undContact
undPage2
nurUser
.Page2
könnte auchUserComponent
direkt, nur, wenn Sie diese Seite unterstützen sollte, mehr als eine Komponente, ist es notwendig zu machen, eine Komponente mit Kind-Routen.Können Sie natürlich die Navigation zwischen
User
und zum BeispielAbout
mit<router-outlet>
platziert. I. e ich möchte nicht, dass meine Komponenten geladen werden, die Steckdose, sondern wollen es zu laden, es als eine neue komplette Seite. nochmals vielen Dank für die Antwort<router-outlet>
im root-KomponenteAppComponent
, und eine route laden, fügt der gewünschten Komponente, um diesen<router-outlet>
.*ngIf
auf die Navigationsleiste, um zu zeigen/verbergen, je nach route.Hatte ich ähnliche Anforderung, wo ich gehen musste, auf der neuen Seite nach einem Klick auf die Schaltfläche.
Sagen wir, wir haben Komponenten, trainer,admin,trainee,footer,header und login.
In unserem Appcomponent ich habe
wenn ich mir jetzt den Weg zu neuen Seite nach dem login, was passieren wird, ist die neue Seite kommen wird, aber meine original-login-Seite immer noch da und die neue Seite wird unter, die log-in-Seite, da haben wir
in der Vorlage Appcomponent.
Um loszuwerden dieses problem, das ich
Hinzugefügt
<header></header>
und<footer></footer>
am Anfang und Ende jeder Seite.Jetzt in Appcomponent wir haben nur
also, wenn wir die route auf der neuen Seite belegt dieses ganze Seite.
Die einfache Lösung ist, einfach router verwenden-Steckdose im app.component.html anstatt es in die html, wo Ihr im UI-code geschrieben , der Es vermeidet neue Seite, die unter der original-Seite. stellen Sie sicher, dass Sie sind nicht das schreiben von code in app.component.html
zum Beispiel, wenn Ihr Haupt-html-code ist geschrieben in home.component.html und Sie haben, um die route zu Seite connections.component.html dann können Sie das wie folgt tun :
index.html :
<app-root></app-root>
//dieser leitet Sie an die app-Komponente von indexapp.component.html :
<router-outlet></router-outlet>
//dieser lädt die neue Seite von code inapp.component.html
home.component.html:
<a routerLink =['/connection'] > Add connection </a>
//Routen- Verbindung.html
U brauchen nicht zu schreiben-router-Steckdose im home.component.html