Как получить параметры маршрута URL в представлении?
Я использую Backbone.js и Chaplin.js на CoffeeScript. У меня есть вызов. Как получить URL-параметры в перенаправленном представлении?
routes.coffee:
define ->
'use strict'
(match) ->
match "account/albums/:page", "accounts#albums"
define [
'chaplin'
'collections/albums'
'views/form_view'
'views/inline/album'
'text!template/account/_form_image.html'
'text!template/account/list_albums.html'
], (chaplin,
Albums,
FormView,
AlbumView,
formTemplate,
template
) ->
'use strict'
class AccountAlbums extends chaplin.CollectionView
collection: new Albums
itemView: AlbumView
template: template
containerMethod: 'html'
listSelector: '[data-placeholder=albums-tile]'
# TODO: understand how to get router arguments in the view
initialize: (options) ->
super
@on 'addedToDOM', => @collection.fetch()
# Need to something like this.
# But I do not know how to get it.
#@collection.fetch
# data:
# page: page
1 ответ
Решение
Это старый вопрос, но для полноты вот ответ:
Ваш маршрут отправляет данные на albums
метод внутри контроллера (accounts
), который не показан в вашем коде выше. Этот метод должен выглядеть примерно так:
albums: (params, route, options) ->
@collection = new Albums()
@view = new AccountAlbums collection: @collection
@collection.fetch
data:
page: params.page
Представление не должно беспокоить извлечение данных, задача контроллера состоит в том, чтобы сообщить коллекции о получении данных. Тогда представление автоматически делает это.