2012-02-22 7 views
0

私は、2つの値しか取ることができない変数でバックボーンルートを書きたいと思っています。以下の例では、開始ルート/ca/...または/us/...のみをhandleByCountryにルーティングします。バックボーンルート:許可された値が2つしかない変数を含める?

正規表現を使用する必要がありますか?これは現在のコードです:

var AppRouter = Backbone.Router.extend({ 
     routes: { 
      ":country/:str": "handleByCountry", // country should only be 'ca' or 'us' 
     }, 
     handleByCountry: function(country, str){ 
      // handle 'ca' and 'us' values differently 
     }, 
    }); 
+0

http://blog.rjzaworski.com/2011/12/regex-routing-with-backbone-js/は正規表現を使用する方法を説明しますが、パラメータ化された方法では使用できません(正規表現の値を取得する方法) 。 – Richard

答えて

0

あなたはそれがうまくいくはずです。 countrycaまたはusに等しくない場合、エラーメッセージをhandleByCountryに表示するだけで済みます。

+0

OK、ありがとう!あなたは 'handleByCountry'の中で' country'の価値をどのように得ることができるのか分かりますか?私はルートを再度取得し、それをバックスラッシュで分割するために何かハッキーを行うことができると思いますが、そこにはもう少しの方法がありますか? – Richard

+0

あなたの例( '":country /:str "')のように動的にすると、 'handleByCountry'に渡される最初のパラメータになります。 – abraham

関連する問題