약간의 딜레마가 있습니다. 이 backbone.js에 일반 아니지만 확실히 작동 Backbone.Router.routes을 받고 나에게 문제를 일으키는 :자바 스크립트/백본에 미리 추가/해시 키 추가
문제 : 내 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",
...
없는 주사위 오류 다음 내가 사용해보십시오 :의 라인을 따라 {평가를
.... 루트 (LANG + "/ URL이// 여기 간다") : "functionNameHere",,개 ...
어떤 주사위 다시 ..
반드시 동적으로 즉석에서 해시 키를 앞에 추가 할 수있는 방법은 프로그래머?누구나? T.J.에
정말 감사합니다
솔루션 덕분에 (아래 참조)
누군가가 Backbone.js와 같은 방식으로 이에 관심이 있다면. 내가 한 것은 T.J. 솔루션을 사용하는 것이 었습니다. 내 초기화 함수에 아래처럼 제안 :
Nice T.J.Crowder !!
확실하지 나는 오리지널 [따옴표없이 예]
initialize: function(params){
var tmpr = {};
for(var i in params.routes)
{
tmpr[params.lang+i] = params.routes[i];
}
this.routes = tmpr;
......