我有一个骨干视图,除其他外,它执行ajax调用,获取用户的日期输入(来自和来自js datepicker小部件),相应的django视图根据这些输入查询数据库并返回新的json数据。现在,在成功的时候,我尝试将新数据附加到el,但el也保留了最初的数据。更重要的是,每次我选择新日期时,都会在模板上的前一个下方添加一个新的div。我该怎么解决这个问题?
或多或少我正在做这样的事情:
` TestView = Backbone.View.extend({ template:_. template($(“#test-template”)。html()), url:$(“#test-url”)。data('url'),
render: function() {
var template = this.template;
var url = this.url;
var el = $(this.el);
var _this = this;
var currentDate = new Date();
var day = currentDate.getDate();
var month = currentDate.getMonth() + 1;
var year = currentDate.getFullYear();
cur_date = month + "/" + day + "/" + year;
var m = month - 1 ;
prev_date = m + "/" + day + "/" + year;
data_send = {period_from: prev_date, period_to:cur_date};
$.get(url, data_send, function(data) {
var pigs = $.parseJSON(data);
el.append(template(pigs));
_this.event();
$( ".date-popup" ).datepicker();
});
return this;
},
event: function(){
_this = this;
var $to = $('#to_id');
var template = this.template;
var url = this.url;
var el = $(this.el);
$to.on('change', function(event) {
var from = $('#from_id').val();
var to = $('#to_id').val();
$.ajax({
type:"GET",
url :url,
data: {
period_from: $('#from_id').val(),
period_to: $('#to_id').val()
},
datatype:"json",
error:function(data){alert('Error:'+data);},
success:function(data){
var pigs = $.parseJSON(data);
el.append(template(pigs));
_this.event();
}
});
});
}
});`
答案 0 :(得分:0)
如果您不希望显示旧数据,则可能使用el.html(template(pigs))
代替el.append(template(pigs))
会有所帮助。