Backbone remove视图删除el
backbone remove view deletes the el
我正在创建一个单页应用程序,而且我对骨干相当陌生。我有一个问题,创建多个视图使用相同的wrapper-div。
我设置:我为所有视图添加了一个close函数:
Backbone.View.prototype.close = function(){
this.remove();
this.off();
if (this.onClose){
this.onClose();
}
}
我有一个wrapper-div,我想要渲染视图,删除它们并渲染新视图。所以我的SetupView是这样的:
app.SetupView = Backbone.View.extend({
el: '#my_view_wrapper',
...
});
从我交换视图的函数中,我关闭当前(打开)视图,如下所示:
var v = this.model.get('view');
v.close();
我的问题是,我有多个视图使用相同的wrapper-div。但是当我关闭一个视图时,这个wrapper-div似乎被删除了,我试图创建的下一个视图找不到这个div。
我想有一个简单的解决办法吗?我想重用相同的包装器,并且只删除其中的视图,而不是包装器本身。只是作为一个补充(供以后参考):另一个选项是覆盖子视图remove
,这样它只是清空$el
而不是删除它。如。
remove: function() {
this.$el.empty().off(); /* off to unbind the events */
this.stopListening();
return this;
}
我个人更喜欢这种方式,因为这样可以避免插入没有实际用途的包装器元素。
在您的场景中,不要使用现有的DOM元素作为"el"值。Backbone将为您创建元素。当您实例化您的视图时,您可以执行以下操作将其附加到现有的包装元素。
$(viewName.render().el).appendTo('#my_view_wrapper');
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- JQuery需要帮助理解(i,el)
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如果el包含此文本,请从中删除此字符串
- 如何从文本中删除html标签并将其存储在EL中
- 如何防止backbone remove()删除"el"在一个视图中
- Backbone remove视图删除el