изменить формат даты и времени в поле ввода с помощью angularjs - PullRequest
0 голосов
/ 26 июня 2019

Я новичок в Angular JS, я использую AngularJs - 1,6,9 . Я использую директиву angularjs-bootstrap-datetimepicker для даты и времени. Это простой код для реализации и отлично работает с форматом даты и времени по умолчанию. Проблема возникла, когда я хочу изменить формат даты и времени в Поле ввода . Вот мой рабочий код.

<div class="form-group col-md-2" 
     ng-class="{'has-error': myForm.edtaDate.$error.required, 'has-success': myForm.edtaDate.$valid }
  <label>EDTA</label>
  <div class="dropdown date_dropdown"> 
    <a class="dropdown-toggle" id="dropdown1" role="button" 
       data-toggle="dropdown" data-target="dropdown1" href="#">
      <div class="input-group">
        <input type="text" required id="edtaDate" name="edtaDate" 
               class="form-control" data-ng-model="myModel.edtaDate">
        <span class="input-group-addon">
          <i class="glyphicon glyphicon-calendar"></i>
        </span>
      </div>
    </a>

    <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> 
       <datetimepicker data-before-render="startDateBeforeRender($dates)"
                       data-ng-model="myModel.edtaDate"
              data-datetimepicker-config="{ dropdownSelector: '#dropdown1' }">
       </datetimepicker>
    </ul> 
  </div>
</div>

В приведенном выше коде все работает нормально. Давайте сосредоточимся на проблеме, когда я изменил формат, вот код:

<input type="text" required id="edtaDate" name="edtaDate"
       class="form-control"
       data-ng-model="myModel.edtaDate | date:'yyyy-MM-dd HH:mm'">

только с использованием трубопровода, формат даты и времени изменился, но возникла новая проблема, угловая "has-error" или "has-success" не работает.

Теперь я хочу изменить формат даты и времени в соответствии с моей легкостью с помощью has-error или has-success . я просмотрел несколько предложений, но не работал, вот ссылка: angularJs форматирование даты при изменении поля ввода , изменение формата даты и времени в angularjs , изменение ввода даты формат поля в угловых и многое другое, но проблема остается прежней. Заранее спасибо.

1 Ответ

1 голос
/ 26 июня 2019

В идеале не следует привязывать два поля ввода к одной и той же модели, поскольку обновление одного поля может вызвать перехват обновления для другого, что может привести к некоторым довольно болезненным ошибкам. Кроме того, dateTimePicker устанавливает объект JSDate, тогда как ваше поле ввода будет текстовым, поэтому вам, возможно, придется анализировать этот ввод через new Date(myDateInput) в зависимости от того, что его потребляет.

В ссылке, которую вы указали для angularjs-bootstrap-datetimepicker, указывается, что для свойства конфигурации 'modelType' вы можете указать строку формата вместо предустановленных значений

Итак, из того, что вы предоставили, вы ищете следующее:

<datetimepicker data-before-render="startDateBeforeRender($dates)"
                data-ng-model="myModel.edtaDate"
                data-datetimepicker-config="{ dropdownSelector: '#dropdown1',
                                              modelType: 'yyyy-MM-dd HH:mm' }">

Если ничего из вышеперечисленного не работает, посмотрите на предоставленные демоверсии и посмотрите, помогут ли они. См. демонстрационную папку для реализации этой страницы.

...