1

有人可以帮我配置路由规则吗?我遇到了路由可选参数约束的问题。

应该为 /{region}/{category}/{title}/:page: url 模式调用名为“offerRegionCategoryTitle”的路由 - 这可以正常工作,

但是当我尝试调用 /{region}/{category}/:page: url (etc./pomorskie/programowanie/1) 时,会处理 'offerRegionCategoryTitle' 路由。

我认为问题出在路由规则配置中。有人可以帮我吗?

源代码:AppRouting:http: //jsfiddle.net/kppfP/

4

1 回答 1

2

问题是这两条路线基本上都匹配“相同”的字符串。您有 3 个动态段 ({region}/{category}/:page:{region}/{category}/{title}),并且没有足够的信息让路由器区分两者。如果:page:总是数字并且{title}不是,您可以添加更多规则以确保它不匹配错误的路线:

var catRoute = crossroads.addRoute('/{region}/{category}/:page:');
catRoute.rules = {
  page : /^\d+$/ // should be numeric
};

var titleRoute = crossroads.addRoute('/{region}/{category}/{title}/:page:');
titleRoute.rules = {
  title : function(val){
     return isNaN(val); // title can't be numeric (should contain at least one char)
  },
  page : /^\d+$/ // should be numeric
};

有关更多信息,请参阅有关 Route.rules示例页面的文档。

于 2012-05-14T14:24:58.217 回答