2017-01-05 4 views
1

ich diesen Router:Angular 2 Routing fügt Anker in IE9

... 
import { Router, Routes, RouterModule } from '@angular/router'; 
... 

const routes:Routes = [ 
    { path:'', redirectTo:'home', pathMatch:'full'}, 
    { path:'home', component: HomeComponent}, 
    ... 
] 

Und ich navigate

router.navigateByUrl('/home'); 

mit Es funktioniert ziemlich gut in allen Browsern aber IE9.

Es ergänzt die aktuelle URL ein #, also wenn ich zu localhost navigieren, macht es die HomeComponent in Ordnung, aber die URL ist localhost/#/home Und wenn ich geht manuell localhost/home fügen Sie localhost/home/#/home und nicht

Can‘ Ich finde nichts über die GitHub-Probleme (einige ähnliche Fragen, aber nicht die gleichen), und ich kann das Problem nicht selbst finden. Irgendwelche Hinweise?

Antwort

2

Internet Explorer 9 unterstützt HTML5 pushstate Navigation nicht. Angular2 standardmäßig auf Hash-Navigation auf IE9

+0

Was sollte die Problemumgehung sein? Hash-Navigation für alle? Unterschiedliche Navigation für IE9? – sailens

+0

IE9 nicht unterstützen würde meine Standardantwort sein. Aber hey, ich kenne deine Situation nicht :) Ich kenne keine Problemumgehung, aber es könnte sein, dass du dich damit auf deinem Webserver beschäftigst. Überprüfen Sie, ob es IE9 ist und fügen Sie dann einen Hash vor der URL hinzu. Aber vielleicht gibt es einen besseren Weg. Hast du deine Base href auf '/' gesetzt? – PierreDuc

+0

Leider ist IE9 zwingend erforderlich. Base Ref ist korrekt eingestellt auf/ – sailens