单击输入框切换 kendo 日期日历容器

toggle kendo date calender container on click of input box

我有一个 kendo 日期选择器,它运行良好。

单击输入框旁边的图标,我可以打开日历的日期对话框,它可以正常工作。 但是我希望这个对话框也应该打开输入框的onclick..

            <h4>Select date:</h4>
            <input kendo-date-picker
             ng-model="dateString"
             k-ng-model="dateObject" />

我尝试过的:

angular.element('#common_datePicker').on('click', function () {
                            var datePicker = angular.element('#common_datePicker').data('kendoDatePicker');
                            if ($('.k-calendar-container').css('display') == 'none'){
                                datePicker.open();
                            } else {
                                datePicker.close();
                            }
                        });

单击输入框我可以打开 Calender 容器,但再次单击它应该会关闭。它应该作为一个切换。 在这个 link 他们谈论 API 与 kendo datepicker..

http://demos.telerik.com/kendo-ui/datepicker/api

谁能指导我?

答案在这里..

我做了一些研发并找到了这个解决方案..

                // On click of input box of date control open and close the calender control
                angular.element('#common_datePicker').on('click', function () {
                    var datePicker = angular.element('#common_datePicker').data('kendoDatePicker');
                    if ($('#common_datePicker_dateview').css('display') == 'none') {
                        datePicker.open();
                    } else {
                        datePicker.close();
                    }
                });

这对我来说效果很好。 谢谢!!

这是 Javascript 编码器解决方案的 JQuery 版本

$("#yourDatePickerInputId").on('click', function () {
    var datePicker = $('#yourDatePickerInputId').data("kendoDatePicker");
    if ($('#yourDatePickerInputId_dateview').css('display') == 'none') {
        datePicker.open();
    } else {
        datePicker.close();
    }
});

我为此创建了一个指令...

myApp.directive('kendoDatePicker', [
  function () {
    return {
      link: function (scope, element, attr) {
        element.bind('click', function (event) {
          var datePicker = $(element).data("kendoDatePicker");
          datePicker.open();
        });
      }
    };
  }]);