我使用Backbone创建了一个Rails应用程序,但我遇到了一个小但烦人的问题。当用户访问他的个人资料然后返回首页时,首页是空的,我必须刷新它才能显示骨干视图的内容。
在Movieseat.Routers.Movieseats
我有:
routes:
'': 'index'
initialize: ->
@movieSeats = new Movieseat.Collections.Movieseats()
@movieSeats.fetch()
@searchResults = new Movieseat.Collections.Moviesearch()
index: ->
view = new Movieseat.Views.MovieseatsIndex(collection: @movieSeats)
$('#container').html(view.render().el)
为什么用户必须刷新以查看首页?
答案 0 :(得分:0)
我不了解CoffeeScript,但fetch()
方法会成功回调,您可以确保已加载该集合。在索引中,您创建了一个传递@movieSeats
集合的新视图,但该集合可能已经加载不。请尝试以下方法:
{
routes: {
'': 'index'
},
initialize: function() {
this.movieSeats = new Movieseat.Collections.Movieseats();
},
index: function() {
var self = this, view;
this.movieSeats.fetch({
success: function(collection) {
view = new Movieseat.Views.MovieseatsIndex({ collection: collection })
$('#container').html(view.render().el)
}
});
}
}
但是,你可能想要" bootstrap"您收集的内容会显示在Backbone文档:http://documentcloud.github.io/backbone/#FAQ-bootstrap
上