У меня есть представление, что каждый раз, когда вызывается, повторно отображает элементы в представлении, вот фрагмент кода:
Project.Views.CheckinScheduledView = Backbone.View.extend({
tagName: 'div',
id:'CheckinScheduledView',
className:'section',
checkinsHtml: '',
initialize: function() {
_.bindAll(this);
this.checkinsCollections = new Project.Collections.Checkins();
this.checkinsCollections.on('reset', this.render);
this.checkinsCollections.fetch();
},
events: {
'click .scheduled_checkin a':'deleteCheckin'
},
render: function() {
var that = this;
// HERE IS THE PROBLEM
if($('li.scheduled_checkin').length) {
$('li.scheduled_checkin').each(function() {
$(this).css('display','none').empty().remove();
});
}
if(Project.InfoWindow.length) {
Project.InfoWindow[0].close();
}
_.each(this.checkinsCollections.models, function(item) {
that.renderLocation(item);
});
$(this.el).html(this.template());
this.renderCheckins();
return this;
},
refreshData: function() {
this.checkinsCollections.fetch();
}
это случай:
- открыть домашнюю страницу
- нажмите checkIn (текущий код просмотра)
- вернуться домой
- рендеринг вида, но добавляет элементы в список
изображений
Первый раз загружаю представление
скажем, я перехожу в другое представление, а теперь я возвращаюсь к этому представлению
и снова :(
each
не запускается. или этот рендер не называется - person alonisser   schedule 04.03.2013li.scheduled_checkin
? Где-нибудь в DOM или вel
представления? - person mu is too short   schedule 05.03.2013this.$(...)
вместо$(...)
для локализации поиска вel
представления? Использование$(...)
предполагает, что то, что вы хотите, уже находится в DOM, и это может быть не так внутри вызова Backbonerender
. - person mu is too short   schedule 05.03.2013$(this)
на$.el.remove()
, как показывает большинство тусовок? - person alonisser   schedule 05.03.2013