它看起来像每当我打电话view.remove()它不仅能消除从DOM的观点,而且整个身体删除Backbone.js的观点不允许我添加另一种观点认为
我打电话showView创建每个视图的后
showView : function(view) {
if (this.currentView) {
this.currentView.remove();
this.currentView.unbind();
if (this.currentView.onClose) {
this.currentView.onClose();
}
}
this.currentView = view;
$('body').html(this.currentView.render().el);
}
由于不再有一个本体元件我无法添加另一个视图
铬调试器输出:
$('html')
<html>
<script id="tinyhippos-injected">…</script>
<head>…</head>
</html>
一旦view.remove()是跑屏幕变成白色和$不重新填充( '主体')HTML(this.currentView.render()EL)。
编辑:
我改变从EL每个视图:$( '体 ')到EL:' .mainContent' 和index.html文件中增加了一个。
在app.showView我添加了搜索Maincontent格,如果它已被删除。最好删除一个div,而不是整个身体。
if($('.mainContent').length == 0)
$('body').append('<div class="mainContent"></div>');
SOLUTION:
我要重写我的看法remove方法。我不想删除整个EL,只是内容:Recreating a removed view in backbone js
Backbone.View.prototype.remove = function() {
this.undelegateEvents();
this.$el.empty();
return this;
};
而是一个答案编辑你的问题,你应该有这个问题的答案回答。如果你不这样做,那么这个问题就会一直存在于未答复的队列中,直到失效(30天后,我认为)。 – machineghost