2016-04-21 44 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. 
    } 
]);