【问题标题】:md-datepicker md-min-date not work when is a bindingmd-datepicker md-min-date 在绑定时不起作用
【发布时间】:2017-06-12 00:45:51
【问题描述】:

对不起我的英语。我有彼此相关的 md-date-picker。当我减少第一个中的日期时,第二个更改 3 个月加上第一个,第二个 md-min-date 更改为第一个模型。请参阅 codepen 以更好地理解。

http://codepen.io/patapron/pen/MJEmyY?editors=1010

我的问题:

当我更改第一个日期少于 3 个月时,我在第二个的最小日期中收到错误

我尝试为这样的函数更改最小日期绑定:

<form name="myOtherForm" flex layout="row" layout-align="center center">  
    <md-input-container>
      <label>From</label>
      <md-datepicker ng-model="myDateFrom" 
                     name="dateFieldFrom" 
                     ng-change="plusTo()"
                     md-max-date="myDateTo">
      </md-datepicker>
    </md-input-container>           
    <md-input-container>
      <label>to</label>
      <md-datepicker ng-model="myDateTo" 
                     name="dateFieldTo" 
                     md-min-date="minDateTo()">
      </md-datepicker>
    </md-input-container>
  </form>

【问题讨论】:

    标签: datepicker


    【解决方案1】:

    尝试将$timeout 添加到您的$scope.plusTo 函数中,因此我们的修改发生在md-datepicker 之后。 :

    $scope.plusTo = function() {
      $timeout(function () {
        $scope.myDateTo = moment($scope.myDateFrom).add(3, 'months').toDate();
      });
    };
    

    别忘了将$timeout 注入你的控制器:

    ... .controller('AppCtrl', function($scope, $timeout) {
          ...
        }
    

    你也可以使用$scope.$applyAsync 代替$timeout(你已经注入了$scope),但我个人更喜欢'$timeout'

    【讨论】:

    • 非常感谢@Andriy,我真的花了好几个小时试图修复它而没有得到任何结果。 codepen 问题解决了,但是,你真的知道为什么会这样吗?再见。
    猜你喜欢
    • 2017-05-16
    • 2020-05-02
    • 1970-01-01
    • 2018-03-06
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多