1
我想用骨幹路由設置的作品如下:Backbone.js路線中的變量:是否需要正則表達式?
- 路線像
/country/[any string]
,其中country
要麼us
或ca
,都應該去handleByCountry(country, location)
- 任何其他途徑應該重定向到
/
並由handleHome
處理。
目前,我有(作爲粗第一次嘗試):
var AppRouter = Backbone.Router.extend({
routes: {
"ca/:str": "handleByCountry",
"us/:str": "handleByCountry",
"*route": "home"
},
handleByCountry: function(str){
console.log('ROUTE handleByCountry', route);
// how to get the country? parse route by hand?
},
home: function(route){
this.navigate('/');
},
});
這有以下問題:
- 也不幹 - 我可以寫兩個
ca
和匹配的單一路線us
?我需要某種條件變量,也許是一個正則表達式。 - 如何從內部
handleByCountry
檢查當前的國家?我是否需要再次解析路由字符串?
此外,正在轉發其他路線/
,因爲我在做,好的做法?
接近,但也不能令人信服,至少對我來說...我需要限制'country'要麼CA或美國,但沒有別的。這是一個正則表達式的工作嗎? – Richard 2012-02-22 16:39:46
是的,你需要使用'route'方法在你的路由器的初始化和創建一個自定義路線有使用正則表達式 - 檢查它的文檔http://backbonejs.org/#Router-route有使用正則表達式的例子那裏 – 2012-02-22 21:32:17