В моем приложении максимальная дата рассчитывается на основе некоторой логики.Дата является датой JSON.Он будет использоваться для установки максимальной даты.
Чтобы показать проблему, я создал плункерную ссылку (http://plnkr.co/edit/KR2brhOXPMgZhbhafhex?p=preview).
В моем примере max-date
атрибут получает дату JSON
<input type="text" date-picker="" date-range="true" ng-model="Date"
class="form-control input-sm" placeholder="MM/DD/YYYY"
ng-required="true" name="Date" ng-pattern='datePattern'
max-date="dateLimit"/>
В моем контроллере Iпопробуйте преобразовать дату JSON в строку даты мм / дд / гг. Для этого я создаю функцию getcalculateddDate
, которая принимает
Оценил мою дату в консоли инструментов Chrome Dev
app.controller('MainCtrl', function($scope) {
$scope.datePattern = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/i
var jsonDateExample = "/Date(1522728000000)/";
$scope.dateLimit = getCalculatedDate(jsonDateExample );
function getCalculatedDate(date) {
var year = date.getFullYear();
var month = (1 + date.getMonth()).toString();
month = month.length > 1 ? month : '0' + month;
var day = (date.getDate() - 1).toString();
day = day.length > 1 ? day : '0' + day;
return month + '/' + day + '/' + year;
}
});
Я создал директиву, чтобы помочь мне в достижении этого
app.directive('datePicker', function () {
return {
require: 'ngModel',
scope: {
dateRange: '=',
maxDate: '='
},
link: function (scope, el, attr, ngModel) {
if (scope.dateRange !== undefined && scope.dateRange) {
$(el).datepicker({
maxDate: scope.maxDate,
minDate: '-1M',
onSelect: function (dateText) {
scope.$apply(function () {
ngModel.$setViewValue(dateText);
});
}
});
}
else {
$(el).datepicker({
onSelect: function (dateText) {
scope.$apply(function () {
ngModel.$setViewValue(dateText);
});
}
});
}
}
};
});