我是Backbone的新手,并且有一个问题从almous开始想知道如何克服主视图的意外行为问题。 我启动页面看起来很好看。 2.点击按钮,将我引导到不同的视图并向我展示。 3.我点击"返回"按钮,我看到一个空白页面,但在DOM中我可以找到前一个视图中的一些元素,但不可见。
这是我的路由器代码(我希望这些内容足够):
home: function () {
if (!app.leftMenuView) {
app.leftMenuView = new app.views.LeftMenuView({
el: $("#left_menu")
});
} else {
app.leftMenuView.delegateEvents();
}
if (!app.homeView) {
app.homeView = new app.views.HomeView({
el: $("#main_container")
});
} else {
app.homeView.delegateEvents();
}
if (!app.topMenuView) {
app.topMenuView = new app.views.topMenuView({
el: $("#top_menu")
});
} else {
app.topMenuView.delegateEvents();
}
},
search: function () {
app.searchView = new app.views.SearchView({
el: $("body")
});
},
一个主要的html文件:
<body>
<div id="search-div"></div>
...
</body>
HomeView:
app.views.HomeView = Backbone.View.extend({
initialize: function () {
this.render()
},
render: function () {
var self = this;
$.get('/template/home.html', function (data) {
self.$el.html(_.template(data)({}));
});
return this;
},
});
SearchView:
app.views.SearchView = Backbone.View.extend({
events: {
"click #left-arrow-icon": "toMainPage"
},
initialize: function () {
this.render();
},
render: function () {
var self = this;
$.get('/template/searchView.html', function (data) {
self.$el.html(_.template(data));
});
return this;
},
toMainPage: function () {
Backbone.history.history.back();
},
});
答案 0 :(得分:0)
在提供的示例中,搜索视图(如果呈现)将销毁主html文件内容,因为提供的元素直接是正文。在任何情况下,如果您转到搜索视图,您的主页将被销毁或将无法再渲染。
我建议改进布局管理: