在daterangepicker中设置值

时间:2015-11-19 19:47:35

标签: javascript backbone.js

我使用以下daterangepicker

但是在我的Backbone模板中,我无法设置所选日期

Daterangepicker选项:

 $('input[name="daterange"]').daterangepicker({
  autoUpdateInput: false,
  opens: "right",
  drops: "down",
  locale: {
    cancelLabel: 'Clear'
  },
  ranges: {
    'Today': [moment(), moment()],
    'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
    'Last 7 Days': [moment().subtract(6, 'days'), moment()],
    'Last 30 Days': [moment().subtract(29, 'days'), moment()],
    'This Month': [moment().startOf('month'), moment().endOf('month')],
    'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
  }
});

小部件声明我们必须使用以下函数来实现它:

$('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) {
      $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY'));
  });

  $('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) {
      $(this).val('');
  });

如何在Backbone视图中编写这些内容?

1 个答案:

答案 0 :(得分:0)

最好的方法是触发在呈现视图后手动设置所选日期的代码。默认情况下,Backbone不会为您提供任何postRender事件处理,但您可以自己编写。 所以 - 首先你应该渲染你的模板,当DOM更新时(所有控件都可用到$),运行设置inits / updates datepickers的方法。

有关postRender机制的更多信息,请参阅本主题:Backbone.js event after view.render() is finished

希望有所帮助