Backbone.js Router Passende Optionale Parameter

Ich versuche zu schaffen, einen backbone-router, die sich mit optionalen Parametern.

Betrachten Sie den folgenden code:

routes: {  
  '/jobs'                                     : 'jobs',
  '/jobs/p:page'                              : 'jobs',
  '/jobs/job/:job_id'                         : 'jobs',
  '/jobs/p:page/job/:job_id'                  : 'jobs'
}

jobs: function(page, job_id){
   //do stuff here ....
}

Wenn ich navigieren Sie zu der URL abc.com/#/jobs/p104/ die Seite parameter werden 104. Allerdings, wenn Sie navigieren Sie zu abc.com/#/jobs/job/93, die job_id parameter ist undefined aber die Seite parameter ist 93.

So Backbone-router entspricht grundsätzlich der Routen hash-Parameter nach Reihenfolge und nicht nach Namen.

Ich weiß die Lösung: benutzen Sie ein *splat und teilen Sie die Parameter mit regex, aber ich kann nicht scheinen, um die regex-Teil zu arbeiten (meine regex ist ziemlich rostig). Kann mir bitte jemand helfen?

Wenn es eine bessere Lösung gibt, als mit *splat, kann mir bitte jemand teilen?

  • Rückgrat 0.9.9, optionale Parameter mit (). Für Beispiel - /jobs(/p -: Seite)(/job,/: job_id)
  • keine Ahnung, wie zu behandeln optionale Parameter Ihrer route-handling-Funktionen?
  • was meinst du? Hinzufügen Ihrer Namen als Parameter der Funktion sollte den trick tun
InformationsquelleAutor | 2012-03-10
Schreibe einen Kommentar