2016-12-03 6 views
0

У меня было поле ввода html5 типа = "datetime", в котором отображается выбор даты. Теперь при нажатии любой даты в подборщике даты я хочу позвонить функция. Если Iam использует ng-click, он получает вызов, когда я нажимаю текстовое поле. Даже ng-change не работает. Но я хочу вызвать функцию после выбора даты в datepicker. Это событие может быть использовано для достижения этого. Может кто-то помочь.Как вызвать функцию при выборе даты в html5 и bootstrap picker

<input class="form-control" type="datetime" date-time auto-close="true" view="date" 
min-date="{{today}}" min-view="date" maxlength="10" format="dd/MM/yyyy" 
ng-model="$ctrl.DateInput" required="true" ng-change="$ctrl.checkdate()"> 

JS

$scope.today= new Date().toISOString().split('T')[0]; 
this.checkdate=function(){ 
alert("hi"); 
Notification.error('Please select proper date'); 
}; 

enter image description here

+0

Является ли атрибут 'date-time' одной из ваших пользовательских директив? – Ripley511

+0

нет, это не обычная директива –

ответ

0

Вы могли наблюдать переменную и чем принимать меры по изменению:

$scope.$watch("DateInput", function(newValue, oldValue) { 
    //..do something 
}); 
0

Во-первых, вы должны использовать тип datetime-local ввода, это поддерживается AngularJS, а не datetime ,

Во-вторых, проблема исходит от input\[datetime-local\] API of AngularJS. Значение ngModel должно быть допустимым объектом Date, это предотвращает запуск директивы ng-change.

Вы можете установить свойство DateInput на новую дату с использованием this.DateInput = new Date(), однако отображаемое значение будет полной строкой даты (часы, секунды, мс).
Вы можете попробовать найти workaroung, применив свой фильтр на ngModel, но это не разрешено Angular и не будет легким.

Если вы застряли, вы можете использовать отличный Angular-UI для библиотеки Bootstrap и ее datepicker directive.