1

誰かがルーティングルールの設定を手伝ってくれませんか?ルートオプションパラメータの制約に問題がありました。

'offerRegionCategoryTitle'という名前のルートは、/ {region} / {category} / {title} /:page:urlpatternに対して呼び出す必要があります。これは正しく機能します。

しかし、/ {region} / {category} /:page:url(/ 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 に答える