Мы работаем над SPA с использованием Angularjs и Breeze на основе шаблона HotTowel
У нас есть несколько datePickers на странице, которые вызывают следующие проблемы:
Когда пользователь входит в средство выбора даты, средство выбора даты открывается, но не закрывается, когда пользователь переходит к следующему элементу управления. Поскольку датпикеры располагаются в одном столбце пользовательского интерфейса, это приводит к тому, что раскрывающийся список покрывает поля ниже. Единственный способ очистить их - выбрать дату или щелкнуть в другом месте формы.
Пользователь не может ввести дату в область ввода при редактировании существующей записи, привязанной к модели данных. Если они выделят дату и попытаются ввести ее, она удалит существующую дату и не позволит пользователю ввести новую. Если они нажмут X, чтобы очистить поле ввода, они не смогут ввести новую дату. Если они поместят курсор в конец даты и обратный пробел, дата исчезнет, а в окне выбора календаря будет установлено значение января 1902 года.
По сути, это нормально, если пользователи готовы взять мышь и щелкнуть дату в средстве выбора и никогда не пытаться ввести дату. Это нереально для нашего сообщества пользователей.
Вот HTML:
<label for="ApplicationCompleteDate" data-ng-show="vm.mode === 'edit'"><strong>Application Complete Date:</strong></label>
<div class="input-append" data-ng-show="vm.mode === 'edit'">
<span>
<input name="ApplicationCompleteDate" type="text" class="form-control input-medium" tabindex="16" placeholder="{{vm.format}}"
datepicker-popup="{{vm.format}}" close-text="Close" show-weeks='false'
is-open="vm.applicationCompleteDateOpened"
datepicker-options="vm.dateOptions"
data-ng-model="vm.formData.dateApplicationComplete"
data-ng-required="vm.applicationCompleteDateRequired"
data-ng-readonly="(!user.isInUserGroup && vm.mode === 'new') || (!user.isInCPUGroup && vm.mode === 'edit')" />
</span>
<span class="add-on">
<a href="#" data-ng-click="vm.applicationCompleteDateOpen($event)"><i class="icon-calendar"></i></a>
</span>
</div>
<label for="DecisionDatePicker" data-ng-show="vm.mode === 'edit'"><strong>Decision Date:</strong></label>
<div class="input-append" data-ng-show="vm.mode === 'edit'">
<span>
<input name="DecisionDatePicker" id="ddpID" type="text" class="form-control input-medium" tabindex="14" placeholder="{{vm.format}}"
datepicker-popup="{{vm.format}}" close-text="Close" show-weeks='false'
is-open="vm.decisionDateOpened"
datepicker-options="vm.dateOptions"
data-ng-model="vm.formData.dateDecision"
data-ng-required="vm.decisionDateRequired"
data-ng-readonly="(!user.isInUserGroup && vm.mode === 'new') || (!user.isInCPUGroup && vm.mode === 'edit')" />
</span>
<span class="add-on">
<a href="#" data-ng-click="vm.decisionDateOpen($event)"><i class="icon-calendar"></i></a>
</span>
</div>
<label for="DateClosedPicker" data-ng-show="vm.mode === 'edit'"><strong>Closed Date:</strong></label>
<div class="input-append" data-ng-show="vm.mode === 'edit'">
<span>
<input name="DateClosedPicker" type="text" class="form-control input-medium" tabindex="15" placeholder="{{vm.format}}"
datepicker-popup="{{vm.format}}" close-text="Close" show-weeks='false'
is-open="vm.dateClosedOpened"
datepicker-options="vm.dateOptions"
data-ng-model="vm.formData.dateClosed"
data-ng-required="false"
data-ng-readonly="(!user.isInUserGroup && vm.mode === 'new') || (!user.isInCPUGroup && vm.mode === 'edit')" />
</span>
<span class="add-on">
<a href="#" data-ng-click="vm.dateClosedOpen($event)"><i class="icon-calendar"></i></a>
</span>
</div>
Мы используем двустороннюю привязку с ng-моделью.
Любая помощь будет оценена.
Спасибо