私のバックボーン関数では、新しい要素を追加する前に要素を削除するにはどうすればよいですか?私の関数はすべて正常に動作します。問題は、「更新」をクリックしているときに、要素を更新していて、まだ古いバージョンが利用可能であることです。古い要素を削除し、更新呼び出しから新しい要素を追加するにはどうすればよいですか?
既存のビュー要素をクリアして新しいコレクションを追加する正しい方法は何ですか?
私の機能:
$(document).ready(function(){
var school = {};
school.model = Backbone.Model.extend({
defaults:{
name:'no name',
age:'no age'
}
});
school.collect = Backbone.Collection.extend({
model:school.model,
url:'js/school.json'
});
school.view = Backbone.View.extend({
tagName:'div',
className:'member',
template:$('#newTemp').html(),
render:function(){
var temp = _.template(this.template);
this.$el.html(temp(this.model.toJSON()));
return this;
}
});
school.views = Backbone.View.extend({
el:$('#content'),
events:{
'click #newData' : 'newArrival',
},
initialize:function(){
_.bindAll(this);
this.collection = new school.collect;
this.collection.bind('reset', this.render);
this.collection.fetch();
},
newArrival:function(){
school.views.remove(); // i tried this, throw the error
this.initialize();
},
render:function(){
var that = this;
_.each(this.collection.models, function(item){
that.renderItem(item);
})
},
renderItem:function(item){
//how can i remove the older elements and append new alone?
var newItem = new school.view({model:item});
this.$el.append(newItem.render().el); // keep adding but previous element still not removed,
}
});
var newSchool = new school.views;
})