2016-10-27 4 views
0

Я использую 720kb.datepicker для отображения календаря. Я хочу открыть календарь из ссылки вручную.Angularjs - 720kb.datepicker - Откройте календарь вручную

Это HTML-код:

<datepicker date-format="dd/MM/yyyy"> 
    <input type="text" class="form-control" ng-model="dateBirth" 
     id="date-birth" name="dateBirth" placeholder="DD/MM/YYYY" required maxlength="10" ng-pattern="/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/" 
     validator="isDateofBirthMore" /> 
    <span>open calendar</span> 
</datepicker> 

Я хочу, чтобы открыть календарь, когда я делал Жмите в текст «открытого календаря»

Я пытаюсь сосредоточиться на этой документации, но я не могу получить: http://pythonhackers.com/p/720kb/angular-datepicker

в частности, в этом разделе: вручную показать и скрыть DatePicker

Как можно сделать Это? спасибо,

ответ

1

Вы должны также использовать Datepicker-тумблер в тандеме с Datepicker-шоу. Здесь is my updated plunkr

Я не очень уверен, что они обработали все события, глядя на исходный код. Возможно, вам придется использовать jQuery и $ (window) .on ('blur click', function() {}) и $ ('# spanId'). On ('blur click', function() {}) и т. Д. Для пролет, окно, чтобы полностью работать.

контроллер:

 var app = angular.module('plunker', ['720kb.datepicker']); 

     app.controller('MainCtrl', function($scope, $interval, $window) { 
      $scope.visibility = false; 
      $scope.toggled = false; 


      $scope.toggle = function(){ 
      $scope.visibility = !$scope.visibility; 
      $scope.toggled = !$scope.toggled; 
      } 

     }); 

HTML:

 <datepicker date-format="dd/MM/yyyy" datepicker-toggle="false" datepicker-show="{{ visibility }}"> 
      <!-- Use flag for visibility --> 
      <input type="text" class="form-control" id="date-birth" name="dateBirth" required="" ng-model="dateBirth" placeholder="DD/MM/YYYY" maxlength="10" ng-pattern="/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/" validator="isDateofBirthMore" /> 
      <!-- Set flag = true on click --> 
      <span id="openMe" ng-click="toggle()">open calendar</span> 
     </datepicker> 

Переключение вкл/выкл работает только, нажав на пролете. Вы можете использовать изменение текста диапазона, чтобы читать открывать/закрывать при переключении, если события стрельбы не делают для вас.

+0

Это была большая помощь, большое спасибо, это то, что я хочу. И теперь я буду исследовать, как закрыть календарь, когда я нажимаю внешнее поле ввода;). – Eladerezador

+0

Я рад, что вы нашли решение этой утилиты. Ура! – Mahesh

-1

Просто используйте флаг для отслеживания видимости:

<datepicker date-format="dd/MM/yyyy" 
      datepicker-show="{{ showDatepicker }}"> <!-- Use flag for visibility --> 
    <input type="text" class="form-control" id="date-birth" name="dateBirth" 
      required 
      ng-model="dateBirth" 
      placeholder="DD/MM/YYYY" 
      maxlength="10" 
      ng-pattern="/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/" 
      validator="isDateofBirthMore" /> 
    <!-- Toggle flag on click --> 
    <span ng-click="showDatepicker = !showDatepicker">open calendar</span> 
</datepicker> 
+0

datapicker по-прежнему открывается, когда вы нажимаете на текстовое поле. Вручную означает старомодный, point-n-click. Хуже, когда вы откроете его, щелкнув элемент span, который он никогда не может быть закрыт! Конечно, вы можете переключиться. Кажется, это не просто, за исключением того, что нельзя прекратить распространение этого события - $ event.on – Mahesh

+0

В вопросе ничего не говорится о «не нажав текстовое поле». Вопрос заключается в том, как открыть datepicker, когда вы нажимаете на элемент 'span', и это именно то, что дает этот ответ. Конечно, я бы это реализовал несколько иначе, но это просто ответит на вопрос – devqon

+0

«Я хочу открыть календарь, когда я сделал clik в тексте» открыть календарь »« Мне, слова «Я сделал клик» означает, если я не щелкнул, то есть когда я закончил, ничего не делайте, даже не открывая всплывающее окно, если это поведение по умолчанию. Я правильно читаю предложение. – Mahesh

Смежные вопросы