从主干中的 DOM 中删除视图
Removing view from DOM in backbone
我搜索并找到了一些如何从DOM中删除视图的线索,例如Zombie RUN!和其他帖子。之后,我选择了其中一个来做链接。
这是我的观点:
var HomeView = Backbone.View.extend({
initialize: function() {
myCart1.updateQtyLabel("qtyCart");
window.localStorage.setItem("User",serializeObjToJSON(customer));
},
el: '#webbodycontainer',
events : {
"click #addToCart" : function(){
myCart1.addToCart(newItem);
myCart1.updateQtyLabel("qtyCart");
$("#containernewpromotion").html(promotionItem);
}
},
render : function(){
this.$el.html(homePanel);
$("#containernewpromotion").html(promotionItem);
},
remove: function() {
this.undelegateEvents();
this.$el.empty();
this.stopListening();
return this;
}
});
return HomeView;
这是我的路由器:
app_router.on('route:home', function( ){
var homeView = new HomeView();
homeView.remove();
homeView = new HomeView();
homeView.render();
});
但是视图仍然留在我的 DOM 中。请对此问题有任何想法。谢谢。
问题就在这里:
app_router.on('route:home', function( ){
var homeView = new HomeView();
homeView.remove();
homeView = new HomeView();
homeView.render();
});
在第 #3 行中,您正在调用remove()
方法。在第 #4 行中,您再次实例化它,在第 #5 行中,您将插入 DOM。
你必须在render
之后打电话给remove
。但是,如果立即调用 remove,则可能不会在 DOM 中看到任何内容。 下面是单击时从 DOM 中删除元素的示例
var HomeView = Backbone.View.extend({
.....
events : {
"click #addToCart" : function(){
myCart1.addToCart(newItem);
myCart1.updateQtyLabel("qtyCart");
$("#containernewpromotion").html(promotionItem);
},
'click': 'remove'
},
......
});
现在,您可以按如下方式呈现它:
app_router.on('route:home', function( ){
var homeView = new HomeView();
homeView.render();
});
现在,您应该会看到页面上的元素。当您单击它们时,应将其删除。
相关文章:
- 删除移动视图粘性js上的粘性导航栏
- 拖动&删除Fullcalendar.io资源-更新视图
- 为什么当我单击X时,所有项目都会从我的Backbone.js视图中删除
- 如何删除/销毁附加到主体的主干视图
- 正在删除角度视图属性中的空间
- ASP Web 窗体从视图状态中删除类客户端
- 从移动视图中删除 Div
- 从ASP.NET MVC部分视图中卸载/删除javascript函数
- 如何在获取时删除项目视图
- 从集合中删除项目时,将其从视图中删除
- 在删除视图时取消所有传出的REST HTTP请求
- 删除和取消绑定主干中的子视图
- 从主干中的 DOM 中删除视图
- 如何根据另一个视图中的更改删除视图?骨干
- 主干:调用方法 remove() 时无法删除视图
- AngularJs - ngRepeat 删除视图中的特定行
- 删除视图后未从视图中删除项目
- 延迟删除视图,以便为其设置动画
- 从滚动视图中删除视图
- 删除视图并再次单击打开它,就好像它是新的一样 - SAPUI5