2016-04-21 11 views
2

Ich habe zwei Hauptwege in meiner Angular App. "/" und "/ etwas/{id}". Ich würde erwarten, dass jede andere Route (z. B. "site.com/#/tree") einen Fehler verursacht, der jedoch auf meine Hauptroute geroutet wird.Angular Ui-Router Nur Spiel "/" Nicht Kinder

 $stateProvider 
      .state('main', { 
       parent: 'app', 
       url: '/', 
       data: { 
        authorities: [], 
        pageTitle: 'Main' 
       }, 
       views: { 
        '[email protected]': { 
         templateUrl: 'app/main/main.html', 
         controller: MainController 
        } 
       } 
      }) 
      .state('main.id', { 
       url: '^/main/{id:int}', 
       views: { 
        '[email protected]': { 
         templateUrl: 'app/main/main.html', 
         controller: MainController 
        } 
       } 
      }); 

Gibt es eine Möglichkeit, meine Haupt-Zustand nur zu machen passen die genaue „/“ url?

+0

leider der Zustand Anbieter nicht wie das funktioniert. alles nach dem Hash ist ein Parameter, der vom Browser nicht als Routensegment behandelt wird. Sie können eine '.otherwise'-Klausel verwenden, um nicht passende Übereinstimmungen an eine andere Ansicht zu leiten, aber das funktioniert nicht richtig mit'/'. – Claies

Antwort

0

Versuchen

app.config(["$urlRouterProvider","$stateProvider", 
    function($urlRouterProvider, $stateProvider) { 
     //reroute to error page 
     $urlRouterProvider.otherwise({templateUrl:'/404.html'}); 

     //the rest of your $stateProvider code goes here. 
    } 
]);