2016-07-31 24 views
0

Ich benutze die ngRoute in einer eckigen App und war neugierig, ob ich es für einige benutzerdefinierte Routing erweitern könnte.Angular ngRoute benutzerdefinierte Routing basierend auf Abfrage Parameter

Zum Beispiel möchte ich bestimmte Abfragezeichenfolgen in der URL lesen, um das Routing zu tun. Wenn die URL mit etwas wie "index.html? Kontakte" endet, möchte ich dies zu meiner Kontaktvorlage leiten.

$routeProvider 
     .when('index.html?Home', { 
      templateUrl: 'app/home/index.html', 
      controller: 'HomeController' 
     }) 
     .when('index.html?Contacts', { 
      templateUrl: 'app/contacts/index.html', 
      controller: 'ContactsController' 
     }) 
     .when('index.html?About', { 
      templateUrl: 'app/about/index.html', 
      controller: 'AboutController' 
     }) 

Wie oben gezeigt, möchte ich auch die "index.html" in der URL behalten. Ist das möglich?

Antwort

0

Wenn Sie an der $ routeProvider Dokumentation sehen, verstehen Sie, dass die routeProvider haben zwei Parameter

when(path, route); 

Pfad und Strecke.

Hier ist der Pfad nicht die tatsächliche index.html-Seite, sondern ein virtueller Pfad, den Sie im Browser anzeigen möchten, wenn eine bestimmte Seite aufgerufen wird.

so kann man immer etwas tun, wie diese

$routeProvider 
     .when('index/Home', { 
      templateUrl: 'app/home/index.html', 
      controller: 'HomeController' 
     }) 
     .when('index/Contacts', { 
      templateUrl: 'app/contacts/index.html', 
      controller: 'ContactsController' 
     }) 
     .when('index/About', { 
      templateUrl: 'app/about/index.html', 
      controller: 'AboutController' 
     })