【发布时间】:2016-04-07 09:03:53
【问题描述】:
我为datpicker创建了一个指令,如下:
angular.module('myApp').directive('datepicker', ['myService', '$q', function (myService, $q){
return{
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModelCtrl){
var selectedDropDownVal = attrs.selectedValue;
var events = null;
var eventPromise = myService.getCalendarEvents(selectedDropDownValue);
return eventPromise.the(function(result){
*some logic*
return events;
});
return $q.all([eventsPromise]).then(function(){
return element.datepicker({
minDate:today,
dateFormat: "dd/mm/yy",
beforeShowDay: function (date){
*some logic to highlight dates*
},
onSelect: function (date){
scope.$apply(function(){
ngModelCtrl.$setViewValue(date);
});
}
});
}
}
};
});
这如我所愿。
所以我遇到的问题是,当下拉列表项发生更改时,我想刷新此日期选择器,以便它现在使用新的下拉值返回服务器并返回突出显示的事件。
到目前为止我尝试了什么?
我创建了一个 ng-change="UpdateDatepickerSelectedValue()" 如下:
$scope.UpdateDatepickerSelectedValue = function () {
console.log("value has changed!");
console.log("attempting to refresh datepicker!");
var eventDatepicker = angular.element(document).find('#eventCalendar');
console.log(eventDatepicker);
eventDatepicker.datepicker('refresh');
};
但是这不会刷新日期选择器!
有人可以建议吗?这也是正确的方法吗?有其他选择吗?
谢谢。
库什
【问题讨论】:
标签: jquery angularjs jquery-ui datepicker jquery-ui-datepicker