Vis*_*iya 5 javascript angularjs angularjs-directive
我有一个表格,其中有2个日期字段,来自date和todate.我正在编写一个指令来比较这个日期字段.
如何把从日期filed.I正在调用的是我的自定义指令onBlur的toDate,现在需要采取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)
我的指令代码如下。
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)