Я искал и нашел некоторые подсказки о том, как удалить вид из 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.
Вы должны вызвать remove
after render
. Однако, если вы сразу вызываете 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();
});
Теперь вы должны увидеть элементы на странице. Когда вы нажимаете на них, их следует удалить.
remove()
моего HomeView
?
'click': 'remove'
. Вы можете вызывать метод удаления из любого другого места, homeView
в вашем контексте homeView
переменная homeView
.