2013-01-22 12 views
5

Also nicht 100% meiner Website ist "powered by AngularJS" einige davon ist nur einfache statische HTML wie eine Zielseite oder Content-orientierte Sachen, die aus offensichtlichen Gründen HTML ist einfach.

Der einzige Weg, ich scheinen kann einen Link zu bekommen normalerweise zu navigieren ist wie folgt:

$routeProvider 
    .when('/plans', {templateUrl: '<%= asset_path('ng/views/start.html') %>'}) 
    # Catch all 
    .otherwise({ redirectTo: (p,loc) -> window.location = loc }) 

Es fühlt sich an wie der Fang alles einfacher sein sollte, wie ich .otherwise(false) tun könnte, und es würde normalerweise nur navigieren. Dasselbe gilt für `.when ('/ etwas' /, falsch), aber ich sehe nichts in den Dokumenten, das suggeriert, dass dies möglich ist.

Kennt jemand eine bessere Möglichkeit, dies zu tun?

Edit 1:

Eine Lösung, die ich gefunden habe, ist target='_self' in der Verbindung zu verwenden.

Die andere ist offenbar die "Basis-URL" der Anwendung wie in the docs beschrieben festlegen. Dann sollten alle Links außerhalb dieser Basis normal navigieren. Dies scheint jedoch nicht wie beschrieben zu funktionieren und das Beispiel entspricht auch nicht dem, was in der Dokumentation vorgeschlagen wird.

Antwort

3

Erstellen Sie einfach einen Link, um es external file

wenn Sie Hash-Bang-URLs verwenden (zB #/Pläne), dann sollten Sie alle eingestellt werden, wenn Sie html5 Geschichte api ($ locationProvider.html5 (true)) verwenden Dann müssen Sie Ihre App mit einem Namespace versehen (setzen Sie Base [href] richtig) und den Inhalt außerhalb dieses Namensraums platzieren.

entsprechenden Code:

https://github.com/angular/angular.js/blob/4df45b20d460239a0f5001fb0dd59f95e2d0e80d/src/ng/location.js#L560

Eine andere Lösung ist target="_self" auf diesem a Element zu verwenden. Auch dies sollte nur dann ein Problem sein, wenn html5 (history pushState) verwendet wird.

+0

Ich denke, Sie hatten ein Problem beim Bearbeiten dieses Problems. Ich habe mir diese Dokumente http://docs.angularjs.org/guide/dev_guide.services.$location angesehen, die die Basis-URL erwähnt haben, obwohl das Beispiel ziemlich matschig ist. Ich würde das lieber nicht mit einem Attribut in meinen Tags machen, wenn möglich. –

Verwandte Themen