Backbone Boilerplate - динамические маршруты - Как передать идентификатор в поле зрения?

Я работаю с Backbone.js, используя Backbone Boilerplate, и я ищу способ передать идентификатор динамического маршрута в представление. Таким образом, представление может загружать материалы (через xhr) в зависимости от строки в этом идентификаторе.

Статический маршрут обычно выглядит так:

router.on('route:some-route', function () {
  require(['views/some-view'], function (ViewPage) {
    var viewPage = Vm.create(appView, 'viewPage', ViewPage);
    viewPage.render();
  });
});

Для динамического вам просто нужно включить параметр маршрута в качестве аргумента:

router.on('route:some-route', function (id) {
  ......
});

Поэтому мне нужно решение, в котором параметр маршрута может быть передан в представление. Каков наиболее эффективный способ сделать это?


person Roman Liutikov    schedule 28.01.2013    source источник
comment
Что такое Vm.create? Обычно, когда вы создаете представление с помощью new View(), вы можете передать его как опцию, например new View({thingId:id}).   -  person jevakallio    schedule 29.01.2013
comment
Vm – это View Manager, github.com/thomasdao/Backbone-View-Manager.   -  person Roman Liutikov    schedule 31.01.2013


Ответы (2)


Хорошо, я понял. Это просто. Вам просто нужно передать идентификатор для просмотра рендера.

viewPage.render(id);
person Roman Liutikov    schedule 30.01.2013
comment
Мне было интересно, как вы делаете что-то с id? Я пытаюсь загрузить представление с другим содержимым на основе идентификатора, поэтому я хочу иметь возможность сказать, что нужно загружать содержимое в позицию [id] в массиве... любая помощь будет очень благодарна! - person Lion789; 18.10.2013

Взгляните на мой базовый шаблон https://github.com/hbarroso/backbone-boilerplate.

Я думаю, это именно то, что вам нужно с динамической маршрутизацией.

person Henrique B.    schedule 30.01.2013
comment
Используя ваш шаблон, как передать параметры модулям. У меня есть модуль, который маршрутизируется следующим образом: router.route("v2/site/:id", "main", function () { console.log("Site route trigger"); this.loadModule("bundles/project/main"); }); Как мне сослаться на этот параметр id из main.js? - person DavidH; 27.04.2013