两个结构相似的路线 - 不同的控制器 - 第二个从不被称为

时间:2016-10-13 09:01:43

标签: javascript angularjs

大家好我定义了以下路线:

  appRouteProvider.when('/', {
    templateUrl : '../../app/templates/home.html',
    controller  : 'IndexController'

  }).when('/users/create', {
    templateUrl : '../../app/templates/auth/register.html',
    controller  : 'RegisterController'

  }).when('/users/login', {
    templateUrl : '../../app/templates/auth/login.html',
    controller  : 'LoginController'


  }).when('/posts/:id/:slug', {
    templateUrl : '../../app/templates/posts/single.html',
    controller  : 'PostController',
    resolve:{
      sharedParamsData:function(sharedParams){
        return sharedParams.promise;
      },
    }

  }).when('/:city/:category/:services?', {
    templateUrl : '../../app/templates/container.html',
    controller  : 'VenuesController',
    resolve:{
      sharedParamsData:function(sharedParams){
        return sharedParams.promise;
      },
    }
  }).otherwise( {
    redirect: '/'
  });

SharedParams只是我正在通过的服务,但主要问题是两条路线:

/posts/:id/:slug
/:city/:category/:services?

如果我有一个/posts/16/this-is-a-post形式的网址,则永远不会调用第一条路由,而是调用第二条路由。在第二条路线中,我可以理解:city参数错误/posts是一个参数。但我把它定义为一条独立的路线。尽管如此,为什么这条路线不被召唤。请在这里帮忙。

0 个答案:

没有答案