2016-04-21 98 views
2

我的Angular應用程序中有兩條主要路線。 「/」和「/ something/{id}」。我希望其他路線(例如「site.com/#/tree」)發出錯誤,但是它會被路由到我的主要路線。Angular Ui-Router Only Match「/」Not Children

 $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 
        } 
       } 
      }); 

有沒有辦法讓我的主要國家只匹配確切「/」網址是什麼?

+0

不幸的是,狀態提供者不喜歡的工作。散列之後的任何內容都是參數,不作爲路由段由瀏覽器處理。你可以使用'.otherwise'子句將不匹配的路由路由到不同的視圖,但這並不適用於'/'。 – Claies

回答

0

嘗試

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

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