我对Backbone JS视图有问题。发生路线更改时,它会根据路线功能创建新视图。但是以前的观点也存在。因此,存在多个视图,无法执行在每条路线的顶部,我要删除当前视图,然后为其分配新视图。这是我的main.js文件
return Backbone.Router.extend({
routes: {
"": "viewHome",
"about": "viewAbout",
"find-courses": "findCourses",
"courses": "viewCourses",
"*other": "defaultRoute"
},
viewCourses: function () {
var courseCollection = new Courses();
var fetchDone = function () {
if(courseView && courseView.remove) courseView.remove();
this.courseView = new CoursesView({
collection: courseCollection
});
this.courseView.render();
};
var options = {
success: _.bind(fetchDone, this),
error: this.onError
};
courseCollection.fetch(options);
},
onError: function () {
alert('Some Error!');
},
viewAbout: function () {
this.aboutView = new AboutView();
this.aboutView.render();
}
您能帮我解决这个问题吗?
您可以执行类似操作
if(this.currentView) {
this.currentView.remove();
}
this.currentView = new AboutView();
在每条路线中,您当然都可以通过将其提取到一个单独的方法中来进行改进,该方法可以在比例增加时接受新的视图构造函数,等等