这是我的第一个问题,所以我请耐心等待原谅我的英语:)
当我在浏览器地址栏中输入链接时,一切正常。但是当我通过单击元素在浏览器中执行此操作时,集合为空。但主要问题是服务器始终存在相同的响应,但是获取“不加载”任何项目,因此视图呈现为空集合。
我使用Backbone Boilerplate,
Browser.Views.Catalog - 它是Backbone.View Browser.Catalog - 它是Backbone.Collection
我的路由器:
var Router = Backbone.Router.extend({
routes: {
'' : 'browse'
},
refreshCatalog: function(folder){
app.layout.setViews({
"#catalog" : new Browser.Views.Catalog({
collection: app.catalog
})
}).render();
},
browse: function(folder){
app.catalog = new Browser.Catalog();
app.folders.fetch({
error: function() { console.log(arguments); },
success: this.refreshFolders(folder),
data: $.param({folder: folder}),
cache:false
});
//app.catalog = new Browser.Catalog();
app.catalog.fetch({
error: function() { console.log(arguments); },
success: this.refreshCatalog(folder),
data: $.param({folder: folder}),
cache:false
});
},
答案 0 :(得分:1)
我相信你应该在初始化函数中设置目录
app.catalog = new Browser.Catalog();
应该放在这里(添加此功能)
initialize: function (options) {
app.catalog = new Browser.Catalog();
}
在加载页面时调用initialize函数,因此在浏览#catelog时,它将被设置为http://backbonejs.org/#Router-constructor