【问题标题】:update minDate and maxDate of two JQuery datepicker in AngularJS Directive更新AngularJS指令中两个JQuery datepicker的minDate和maxDate
【发布时间】:2014-08-15 06:59:59
【问题描述】:

我创建了两个指令用于输入字段 start_at 和 end_at,以显示 JQuery 日期选择器

PLUNKR:http://plnkr.co/edit/s71WDURou0QlRzM8Kjkc?p=preview

JS:

app.directive("startDateCalendar", [
  function() {
    return function(scope, element, attrs) {
      return element.datepicker({
        dateFormat: "yy-mm-dd",
        numberOfMonths: 2,
        defaultDate: scope.campaign.start_at,
        beforeShowDay: $.datepicker.noWeekends,
        onSelect: function(date) {
          scope.campaign.start_at = date;
          scope.$apply();
        }
      });
    };
  }
]).directive("endDateCalendar", [
  function() {
    return function(scope, element, attrs) {
      return element.datepicker({
        dateFormat: "yy-mm-dd",
        numberOfMonths: 2,
        minDate: scope.campaign.start_at,
        defaultDate: scope.campaign.end_at,
        beforeShowDay: $.datepicker.noWeekends,
        onSelect: function(date) {
          scope.campaign.end_at = date;
          return scope.$apply();
        }
      });
    };
  }
]);

HTML:

<input type="text" start-date-calendar ng-model="campaign.start_at" />
<input type="text" end-date-calendar ng-model="campaign.end_at" />

我希望发生的事情:

  • 当用户更新campaign.start_at时,campaign.end_at的minDate将为campaign.start_at

  • 当用户更新campaign.end_at时,campaign.start_at的maxDate将为campaign.end_at

我尝试过使用 AngularJS UI Datepicker,效果很好,但是我需要一个选项来在选择器中显示 2 个月,这让我改用 JQuery Datepicker。

【问题讨论】:

标签: angularjs datepicker


【解决方案1】:

对于遇到同样问题的人;我使用$watch 来更新我的日期选择器的最小值和最大值;这是工作的 plunker http://plnkr.co/edit/s71WDURou0QlRzM8Kjkc?p=preview

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-03
    • 2015-03-19
    • 1970-01-01
    • 2013-04-22
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多