2016-07-09 6 views
0

Wenn ich versuche, über die direkte URL zu meiner--Datei (z. B. http://localhost:4200/index.html) auf meine Angular 2-Anwendung zuzugreifen, funktioniert alles wie erwartet.Zurückgehen des Angular 2-Routers

Allerdings verwende ich den Angular Router in meiner Anwendung und wollte eine Rücktaste implementieren.

Nach der Winkeldokumentation einfach die window.history.back() Funktion aufrufen sollte genau das tun, was ich will. Dies trifft zu, wenn ich am Ende auf meine Anwendung ohne index.html zugreife (z. B. http://localhost:4200/).

Wenn ich jedoch auf die Anwendung zugreifen einen Link wie diese http://localhost:4200/index.html verwenden und dann versuchen, die Rücken-Taste zu verwenden, erhalte ich folgende Fehlermeldung:

browser_adapter.ts:84 EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: 'index.html/about' 
browser_adapter.ts:74 EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: 'index.html/about'BrowserDomAdapter.logError @ browser_adapter.ts:74BrowserDomAdapter.logGroup @ browser_adapter.ts:85ExceptionHandler.call @ exception_handler.ts:50(anonymous function) @ application_ref.ts:353schedulerFn @ async.ts:140SafeSubscriber.__tryOrUnsub @ Subscriber.ts:240SafeSubscriber.next @ Subscriber.ts:192Subscriber._next @ Subscriber.ts:133Subscriber.next @ Subscriber.ts:93Subject._finalNext @ Subject.ts:154Subject._next @ Subject.ts:144Subject.next @ Subject.ts:90EventEmitter.emit @ async.ts:125onError @ ng_zone.ts:134onHandleError @ ng_zone_impl.ts:87ZoneDelegate.handleError @ zone.js:327Zone.runGuarded @ zone.js:233_loop_1 @ zone.js:487drainMicroTaskQueue @ zone.js:494ZoneTask.invoke @ zone.js:426 
browser_adapter.ts:74 STACKTRACE:BrowserDomAdapter.logError @ browser_adapter.ts:74ExceptionHandler.call @ exception_handler.ts:53(anonymous function) @ application_ref.ts:353schedulerFn @ async.ts:140SafeSubscriber.__tryOrUnsub @ Subscriber.ts:240SafeSubscriber.next @ Subscriber.ts:192Subscriber._next @ Subscriber.ts:133Subscriber.next @ Subscriber.ts:93Subject._finalNext @ Subject.ts:154Subject._next @ Subject.ts:144Subject.next @ Subject.ts:90EventEmitter.emit @ async.ts:125onError @ ng_zone.ts:134onHandleError @ ng_zone_impl.ts:87ZoneDelegate.handleError @ zone.js:327Zone.runGuarded @ zone.js:233_loop_1 @ zone.js:487drainMicroTaskQueue @ zone.js:494ZoneTask.invoke @ zone.js:426 
browser_adapter.ts:74 Error: Uncaught (in promise): Error: Cannot match any routes: 'index.html/about' 
    at resolvePromise (zone.js:538) 
    at zone.js:515 
    at ZoneDelegate.invoke (zone.js:323) 
    at Object.onInvoke (ng_zone_impl.ts:64) 
    at ZoneDelegate.invoke (zone.js:322) 
    at Zone.run (zone.js:216) 
    at zone.js:571 
    at ZoneDelegate.invokeTask (zone.js:356) 
    at Object.onInvokeTask (ng_zone_impl.ts:53) 
    at ZoneDelegate.invokeTask (zone.js:355)BrowserDomAdapter.logError @ browser_adapter.ts:74ExceptionHandler.call @ exception_handler.ts:54(anonymous function) @ application_ref.ts:353schedulerFn @ async.ts:140SafeSubscriber.__tryOrUnsub @ Subscriber.ts:240SafeSubscriber.next @ Subscriber.ts:192Subscriber._next @ Subscriber.ts:133Subscriber.next @ Subscriber.ts:93Subject._finalNext @ Subject.ts:154Subject._next @ Subject.ts:144Subject.next @ Subject.ts:90EventEmitter.emit @ async.ts:125onError @ ng_zone.ts:134onHandleError @ ng_zone_impl.ts:87ZoneDelegate.handleError @ zone.js:327Zone.runGuarded @ zone.js:233_loop_1 @ zone.js:487drainMicroTaskQueue @ zone.js:494ZoneTask.invoke @ zone.js:426 
zone.js:461 Unhandled Promise rejection: Cannot match any routes: 'index.html/about' ; Zone: angular ; Task: Promise.then ; Value: Error: Cannot match any routes: 'index.html/about'(…)consoleError @ zone.js:461_loop_1 @ zone.js:490drainMicroTaskQueue @ zone.js:494ZoneTask.invoke @ zone.js:426 
zone.js:463 Error: Uncaught (in promise): Error: Cannot match any routes: 'index.html/about'(…) 

Weil ich Angular 2 in Verbindung mit Electron Ich brauche Um auf die Seite mit einer URL zuzugreifen, die mit index.html endet

Wie kann ich dieses Problem beheben?

Antwort

0

Die URL entspricht keiner Route.

Wenn Sie die Dokumentation von Angular Team zur Verfügung gestellt, gefolgt haben Sie wahrscheinlich Ihre Basis href wie folgt eingestellt haben:

<base href="/"> 

Probieren Sie es wie dieser Einstellung statt:

<script>document.write('<base href="' + document.location + '" />');</script> 
+0

Ich verwende bereits die dynamisch festgelegt Grundeigenschaft. Was könnte sonst noch das Problem sein? – HansMu158