Работа с параметрами пар значений ключей в Backbone.js Router

Я хочу передать пары значений ключей в качестве параметров маршрутам Backbone и хочу, чтобы они были десериализованы к объекту javascript до того, как будет вызвана маппируемая функция.

var MyRouter = Backbone.Router.extend({
  routes: {
    "dashboard?:params" : "show_dashboard"
  },
  show_dashboard: function(params){
     console.log(params); 
  }
}); 

Когда я иду на "http://...#dashboard?key1=val1&key2=val2", то {key1: "val1", key2: "val2"} должны быть напечатаны на консоли.

В настоящее время я использую метод $.deparam jQuery BBQ внутри каждой mapped-функции для получения десериализованного объекта. Было бы неплохо, если бы я мог расширить Router и определить его только один раз, чтобы параметры были доступны внутри всех mapped-функций как объект. Что было бы чистым способом сделать это? И есть ли в этом какие-то подводные камни?

Большое спасибо,

mano

8
задан avrelian 18 November 2011 в 15:22
поделиться