请问有人帮我处理路由规则吗? 路由可选参数约束我遇到了问题。
应该为/ {region} / {category} / {title} /:page:url pattern调用名为'offerRegionCategoryTitle'的路由 - 这样可以正常工作,
但是当我尝试调用时 / {region} / {category} /:page:url(etc / pomorskie / programowanie / 1)然后处理'offerRegionCategoryTitle'路线。
我认为问题出在路由规则配置中。 有人可以帮帮我吗?
源代码: AppRouting:http://jsfiddle.net/kppfP/
答案 0 :(得分: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
};
有关详细信息,请参阅documentation about Route.rules和examples page。