backbone.js - How to get ID from URL -


i developing backbone marionette web app. app got routes this:

projects/:id/tasks 

how can id of route (url)?

if use whole url:

backbone.history.fragment 

update

this how define routes projects.

@projectapp.module "projectsapp", (projectsapp, app, backbone, marionette, $, _) ->      class projectsapp.router extends marionette.approuter         approutes:             "projects/new" : "newproject"             "projects/:id" : "showproject"             "projects/:id/edit" : "editproject"             "projects" : "listprojects"      api =         listprojects: ->             new projectsapp.list.controller          newproject: ->             new projectsapp.new.controller          showproject: (id, project) ->             new projectsapp.show.controller                 id: id                 project: project          editproject: (id, project) ->             new projectsapp.edit.controller                 id: id                 project: project      app.router.on "route:newproject", (project_id) ->         alert project_id      app.commands.sethandler "new:crew:member", (region) ->         api.newcrew region      app.vent.on "project:new:clicked", (project) ->         app.navigate "projects/new", true      app.vent.on "project:tasks:clicked", (project) ->         app.navigate "projects/#{project.id}/tasks", true      app.vent.on "project:created", (project) ->         app.navigate "projects/#{project.id}", true      app.vent.on "project:show:clicked project:back:clicked", (project) ->         app.navigate "projects/#{project.id}"         api.showproject project.id, project      app.vent.on "project:clicked project:edit:clicked", (project) ->         app.navigate "projects/#{project.id}/edit"         api.editproject project.id, project      app.vent.on "project:cancelled project:list:back:clicked", (project) ->         app.navigate "projects"         api.listprojects()      app.addinitializer ->         new projectsapp.router             controller: api 

the router provide handler function attributes parsed fro url.

you have route defined "projects/:id" : "showproject" handler is

showproject: (id, project) ->         new projectsapp.show.controller             id: id             project: project 

they don't match: router send parsed id url, that's it. need project on own, before passing view, e.g.:

showproject: (id) ->         project = @projects_collection.get id         new projectsapp.show.controller             id: id             project: project 

of course, means need able access project collection, or fetch project, etc.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -