根据Backbone文档的建议,当我的Rails应用程序呈现html时,我为我的集合提供了初始数据:
<script>
MyCollection.reset(<%= @items.to_json %>)
</script>
现在,当用户触发特定路线时,她继续#search/cats
,我再次获取该集合,如下所示:
MyCollection.fetch({ data : { "query" : "cats" }})
问题在于,当用户返回时,如何使用初始数据重新设置Collection
?
答案 0 :(得分:1)
不要将该代码放在一个块中。它需要在一个JavaScript文件中,在您可以随时调用的方法中。
但仍需要从HTML文件中获取数据。为此,您需要创建一个可以从脚本块传递给它的数据的对象。然后,您可以存储数据并在以后需要时使用它:
<script src="/js/myApp.js"></script>
<script>
MyApp.initialize();
</script>
您的“myApp.js”文件将包含带有“initialize”方法的对象定义:
MyApp = {
initialize: function(data){
this.data = data;
this.resetCollection();
},
resetCollection: function(){
MyCollection.reset(this.data);
}
};
现在,无论何时需要,您都可以致电MyApp.resetCollection
并让它使用您开始使用的数据重置该集合。
当然,有很多方法可以实现这一点。我只向您展示最基本的版本。