Если я нажму ссылку в представлении списка моего базового приложения, то одно представление будет отображаться так, как должно. Работает взад и вперед по истории браузера. Но если я перезагрузите страницу (единственный вид) в браузере или введите URL-адрес в это отдельное представление вручную, это не сработает. Тогда коллекция не содержит никакой модели. Как я могу получить эту конкретную модель, необходимую для создания единого представления в этом случае? СпасибоМассивный однократный просмотр не работает после перезагрузки страницы
main.coffee
class window.MovieSingleView extends Backbone.View
tagName: 'div'
className: 'row'
initialize: ->
@template = _.template ($ '#movie-single-view-template').html()
render: ->
that = @
@model.deferred.done ->
($ that.el).html(that.template that.model.toJSON())
@
class window.Router extends Backbone.Router
routes:
'': 'index'
'movies/:id': 'movieSingleView'
initialize: ->
@collection = new Movies()
@collection.fetch
reset: true
index: ->
moviesView = new MoviesView
# collection: window.movies
collection: @collection
($ '#container')
.empty()
.append moviesView.render().el
movieSingleView: (id) ->
# movie = window.movies.get id
# decoratedMovie = new DecoratedMovie movie
movie = @collection.get id
decoratedMovie = new DecoratedMovie movie
movieSingleView = new MovieSingleView
model: decoratedMovie
($ '#container')
.empty()
.append movieSingleView.render().el
$ ->
window.app = new Router()
Backbone.history.start
pushstate: true
# window.movies.fetch
# reset: true
index.html
<script type="text/template" id="movie-view-template">
<td><%= _year %></td>
<td><a href="#/movies/<%= _id %>"><%= _title %></a></td>
<td><%= _watched %><td>
<td><span class="glyphicon glyphicon-remove pull-right remove"></span></td>
</script>