0

私はバックボーンビューを持っています.とりわけ、ユーザーの日付の入力を取得するajax呼び出しを実行します(js datepickerウィジェットから、および. . さて、成功したら、新しいデータをelに追加しようとしますが、elも最初のデータを保持します。さらに、新しい日付を選択するたびに、テンプレートの前の日付の下に新しい div が追加されます。これをどのように解決すればよいですか?

多かれ少なかれ、私はこのように sth をやっています:

` TestView = Backbone.View.extend ({ テンプレート: _.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();
        }
      });
   });
 }

});`

4

1 に答える 1

0

古いデータを表示したくない場合は、el.html(template(pigs))代わりに使用することをお勧めしel.append(template(pigs))ます。

于 2013-09-17T12:43:34.850 に答える