Javascript AngularJS中的重复路由

Javascript AngularJS中的重复路由,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我需要能够在AngularJS通过这两条路线: .state('app.article', { url: '/:catName/:articleName', views: { 'menuContent': { templateUrl: 'templates/article.html', controller: 'ArticleCtrl' } } }) .state('app

我需要能够在AngularJS通过这两条路线:

.state('app.article', {
     url: '/:catName/:articleName',
     views: {
         'menuContent': {
             templateUrl: 'templates/article.html',
             controller: 'ArticleCtrl'
         }
     }
 })

 .state('app.category', {
     url: '/:catName/:subcatName',
     views: {
         'menuContent': {
             templateUrl: 'templates/category.html',
             controller: 'CategoryCtrl'
         }
     }
 })
问题是它们都是完全一样的

我唯一的区别是文章名以-XXXXXX结尾,其中XXXXXX是一个数字

我该怎么做


谢谢。

您需要包括一些区分这些路线的方法。这里有一种方法

.state('app.article', {
     url: '/:catName/article/:articleName',
     views: {
         'menuContent': {
             templateUrl: 'templates/article.html',
             controller: 'ArticleCtrl'
         }
     }
 })

 .state('app.category', {
     url: '/:catName/category/:subcatName',
     views: {
         'menuContent': {
             templateUrl: 'templates/category.html',
             controller: 'CategoryCtrl'
         }
     }
 })

这不是一个选项,因为URL来自外部源。这是他们的结构,不能改变。有没有办法检查url是否以数字结尾?您可以尝试以下方法。或者,您可以对两条路由使用相同的控制器,并根据参数数据执行不同的逻辑