2016-12-03 26 views
0

我有一個類型=「datetime」的html5輸入字段,它顯示了一個日期選擇器。現在點擊日期選擇器中的任何日期,我想調用一個函數。 如果Iam使用ng-click,它會在我單擊textfield時被調用。即使ng-change不工作。但是我想在datepicker中選擇日期之後調用該函數。可以使用哪個事件來實現此功能。有人可以幫忙嗎?如何在html5和引導選擇器中選擇日期的函數

<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指令被觸發的原因。

您可以使用this.DateInput = new Date()將DateInput屬性設置爲新的日期,但顯示的值將是完整的日期字符串(小時,秒,毫秒)。
您可能會嘗試通過在ngModel上應用一種過濾器來找到工作區,但Angular本身不允許它,並非易事。

如果您遇到困難,您可以使用偉大的Angular-UI作爲Bootstrap庫及其datepicker directive