私はわずかなジレンマを持っています。 これはBACKBONE.JSに一般的ではありませんが、それは確かに働いBackbone.Router.routesを取得し、私の問題を引き起こしている:javascript/backboneにハッシュキーを追加/追加しています
問題: 私は私のjsの中にハードコーディングされたルートの束を持って、これらは、キーと値のペアを追跡しますハッシュパターンは次のようになります。
whatever.route : {"/url/goes/here":"functionNameHere"}
基本的には、URLが変更されたときに呼び出す関数名にURLをバインドします。
私が持っている問題は、私は、文字列は次のようになりますように、LANG /ロケール文字列でURLを付加する必要があるということです「/ EN/URL//ここに行く」
// this will always return "en" or "fr" or aany 2 letter language code
var lang = window.location.pathname.split("/")[1].length ==2?window.location.pathname.split("/")[1]:false;
workspace = new Workspace(//Workspace is basically just a Backbone.router.extend Object
{
// the routes obj is basically a sequence of routes
routes: {
"/": "home",
"/home": "home",
"/terms": "terms",
"/news": "blog",
"/news/:title": "blogpost",
"/about": "about",
"/about/partners": "partners",
"/about/people": "people",
"/values/ethics": "ethics",
"/values/innovation": "innovation",
"/work": "work",
"/work/process": "process",
"/work/awards": "awards",
"/work/:id": "workdetail",
"/contact": "contact",
"/contact/join": "joinus",
"/contact/enquiries": "enquiries"
},
lang : lang
}
);
私のintialの考えでした
....routes{ lang+"/url/goes/here": "functionNameHere",
...
なしサイコロエラー 次の私が使用してみてください:
....ルート{evalの(LANG + "/ URLを/ /ここに行く"): "functionNameHere"、の線に沿って...
再び無サイコロ..
確実に動的にオンザフライでハッシュキーを付加する方法をtheresの?
誰でも?
どうもありがとうございました
T.J.へのソリューションのおかげで(下記参照)
誰かがBackbone.jsの特定の方法でこれに興味があれば。 私がしたのは、T.J.次のように私の初期化関数の下で提案:
ニースT.J.Crowder !!
わからない私はORIG [引用符例えば、]
initialize: function(params){
var tmpr = {};
for(var i in params.routes)
{
tmpr[params.lang+i] = params.routes[i];
}
this.routes = tmpr;
......