Angularjs +如何在指令中获取先前的输入字段值

Vis*_*iya 5 javascript angularjs angularjs-directive

我有一个表格,其中有2个日期字段,来自datetodate.我正在编写一个指令来比较这个日期字段.

如何把从日期filed.I正在调用的是我的自定义指令onBlurtoDate,现在需要采取fromdate.The的外形设计为fillows.

<div class="row">
  <div class="col-xs-6 col-sm-6 col-6">
    <label>From date</label>
    <input type="text" id="eduFromDate" name="eduFromDate" class="form-control" 
           ng-model="education.fromDate" ui-date/>
  </div>
  <div class="col-xs-6 col-sm-6 col-6">
    <label>To date</label>
    <input type="text" name="edutoDate" class="form-control" id="edutoDate" 
           ng-model="education.toDate" ui-date before-date/>
    <span class="error input-icon fui-alert" 
          ng-show="historyForm.edutoDate.$error.beforeDate"></span>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Vis*_*iya 0

我的指令代码如下。

directives.directive('beforeDate', [
    function() {

        var link = function($scope, $element, $attrs, ctrl) {

            var validate = function(viewValue) {
                var comparisonModel = $attrs.beforeDate;
                console.log(new Date(comparisonModel));
                if(!viewValue || !comparisonModel){
                    ctrl.$setValidity('beforeDate', true);
                }
                ctrl.$setValidity('beforeDate', new Date(viewValue) > new Date(comparisonModel) );
                return viewValue;
            };

            ctrl.$parsers.unshift(validate);
            ctrl.$formatters.push(validate);

            $attrs.$observe('beforeDate', function(comparisonModel){
                console.log('comparisonModel '+comparisonModel)
                return validate(ctrl.$viewValue);
            });

        };

        return {
            require: 'ngModel',
            link: link
        };

    }
]);
Run Code Online (Sandbox Code Playgroud)

以我给出的形式

<span ng-repeat="education in userEducation">
  <div class="row">
    <div class="col-xs-6 col-sm-6 col-6">
      <label>From date</label>
      <input type="text" id="eduFromDate" name="eduFromDate" class="form-control" ng-model="education.fromDate" ui-date>
    </div>
    <div class="col-xs-6 col-sm-6 col-6">
      <label>To date</label>
      <div class="form-group has-success">
        <input type="text" name="edutoDate" class="form-control" id="edutoDate" ng-model="education.toDate" ui-date before-date="eduFromDate">
        <span class="error input-icon fui-alert" ng-show="historyForm.edutoDate.$error.beforeDate"></span>
      </div>
    </div>
  </div>
</span>
Run Code Online (Sandbox Code Playgroud)