AngularJS привязывает выбранное значение datatimepicker к ng-модели

У меня есть вопрос новичка AngularJS - я использую библиотеку datetimepicker, и мне трудно получить дату, выбранную для привязки к моей модели... Я видел несколько сообщений, в которых говорилось о невозможности прямого доступа к модели datetimepicker, но в моем случае я обнаружил, что если я просто вручную ВВОДУ текстовое значение в поле ввода даты, оно связывается! Если я выбираю дату с помощью средства выбора, я получаю ужасное «неопределенное» :(... help?

HTML-разметка:

<div class="col-md-2">
  <div name="fromDateTime" class="input-group date" id="datetimepickerFrom">
    <input class="form-control" type="text" name="fromDateTime" ng-model="formEntries.fromDateTime"/>
      <span class="input-group-addon" data-ng-click="pickFromDateTime()"><span class="glyphicon glyphicon-calendar" id="calIconFrom"></span></span> 
  </div>
</div>

<div class="col-md-2">
  <div name="toDateTime" class="input-group date" id="datetimepickerTo">          
    <input class="form-control" type="text" name="toDateTime" ng-model="formEntries.toDateTime"/>
      <span class="input-group-addon" data-ng-click="pickToDateTime()"><span class="glyphicon glyphicon-calendar"></span></span>
 </div>
</div>

Контроллер:

$scope.pickFromDateTime = function () {
   $("#datetimepickerFrom").datetimepicker();
   $("#datetimepickerFrom").datetimepicker().change(function() {       
       $(this).data("DateTimePicker").hide();
       console.log($(this).data("DateTimePicker").getDate()); 
   });
}


$scope.pickToDateTime = function () {
   $("#datetimepickerTo").datetimepicker();
   $("#datetimepickerTo").datetimepicker().change(function() {
       $(this).data("DateTimePicker").hide();
       console.log($(this).data("DateTimePicker").getDate());   
   });
}

$scope.getData = function() {
    console.log($scope.formEntries.fromDateTime);
    console.log($scope.formEntries.toDateTime);

}


person dhalia    schedule 30.09.2014    source источник
comment
Хотите правильно изучить AngularJS? Сделайте проект или два, не включая сначала jQuery или другие библиотеки для работы с DOM.   -  person Matti Virkkunen    schedule 01.10.2014
comment
Я начал это без jquery, я просто не знаю, как без него сделать dattimepicker... пожалуйста, дайте мне знать, если знаете.   -  person dhalia    schedule 01.10.2014


Ответы (1)


Никогда не пишите код DOM или jQuery в свой контроллер. Он никогда не будет работать должным образом. Для этого необходимо создать директиву. Директива будет прослушивать события из любой библиотеки, которую вы используете, и обновлять вашу модель. Вот пример директивы, которая работает со средством выбора даты. Это должно привести вас на правильный путь.

person Jonathan Rowny    schedule 30.09.2014