Javascript 可以在角度数据范围选择器中设置动态范围吗?

Javascript 可以在角度数据范围选择器中设置动态范围吗?,javascript,angularjs,momentjs,angular-daterangepicker,Javascript,Angularjs,Momentjs,Angular Daterangepicker,在通常情况下: vm.datePickerRangeOptions = { ranges: { 'Today': [moment(), moment()] } }; 那就足够了。通过这种方式,我定义了今天开始和结束日期的范围。一旦时间过去,问题就会出现:当页面未刷新时,“今天”范围仍然指向页面呈现的日期 到目前为止,我尝试添加一些事件处理程序: vm.datePickerRangeOptions = { ranges: { 'Today': [moment(), m

在通常情况下:

vm.datePickerRangeOptions = {
  ranges: {
    'Today': [moment(), moment()]
  }
};
那就足够了。通过这种方式,我定义了今天开始和结束日期的范围。一旦时间过去,问题就会出现:当页面未刷新时,“今天”范围仍然指向页面呈现的日期

到目前为止,我尝试添加一些事件处理程序:

vm.datePickerRangeOptions = {
  ranges: {
    'Today': [moment(), moment()]
  },
  eventHandlers: {
    'show.daterangepicker': a
  },
};

function a() {
   vm.datePickerRangeOptions.ranges = {
     'Today': [moment(), moment()]
  };
}
但一旦日期选择器显示出来,它就立即关闭了

第二种方法是将
vm.dateRangePickerOptions
设置为函数,并在输入视图上设置为
选项。Js:

vm.dateRangePickerOptions = function() {
  return {
    ranges: {
      'Today': [moment(), moment()]
    }
  }
}
和模板:

<input date-range-picker name="daterange" ng-model="vm.datePicker.date"
       options="vm.datePickerRangeOptions()">

在这种情况下,我从moment.js收到一个错误:

TypeError:无法将未定义的转换为对象

是的包装器,根据其创建者,这是不可能的(问题:,)

要更新日期范围值,可以在某个时间间隔内设置它们。例如:

function updateRanges() {
  vm.datePickerRangeOptions.ranges = {
    'Today': [moment(), moment()],
  }

  var now = moment();
  var startOfTomorrow = moment().add(1, 'day').startOf('day');
  $timeout(updateRanges, startOfTomorrow.diff(now));
}
旁注:如果您想更新日期范围,并且您已经设置了
maxDate
,请不要忘记在时间间隔内更新它。

是的包装,根据其创建者,这是不可能的(问题:,)

要更新日期范围值,可以在某个时间间隔内设置它们。例如:

function updateRanges() {
  vm.datePickerRangeOptions.ranges = {
    'Today': [moment(), moment()],
  }

  var now = moment();
  var startOfTomorrow = moment().add(1, 'day').startOf('day');
  $timeout(updateRanges, startOfTomorrow.diff(now));
}
旁注:如果您想更新日期范围,并且您已经设置了
maxDate
,请不要忘记在时间间隔内更新它