В угловом проекте у меня есть средство выбора даты bootstrap-ui, которое используется для предоставления информации о дате оплаты счета.
Первоначально при создании счета, так как он не был оплачен, поэтому у меня должна быть переменная ng-model, указывающая null или что-то в этом роде:
$scope.invoice.Payment_Date = null
Дело в том, что для работы средства выбора даты требуется действительный объект даты. При использовании всего таким образом, когда я выбираю дату в средстве выбора даты, чтобы сказать, что мой счет был оплачен, средство выбора даты указывает правильную дату, например, вторник, 15 февраля 2016 года, но переменная ng-model остается нулевой.
Если я инициализирую переменную как таковую:
$scope.invoice.Payment_Date = new Date();
то при смене даты datepicker ng-модель обновляется как надо.
Проблема в том, что мне, возможно, придется создать/обновить счет-фактуру, не сообщая, что он был оплачен, и при этом я получаю Payment_Date, который имеет значение даты создания/обновления указанного счета-фактуры.
Есть ли способ оставить эту переменную равной нулю или пустой, когда средство выбора даты остается нетронутым, но при этом получает правильное значение средства выбора даты при его использовании?
Надеюсь, кто-то может помочь!
Изменить: вот HTML-код средства выбора даты:
<form name="formFacture" novalidate rc-submit="modifierFacture()">
<div class="form-group">
<label>Date de paiement : </label>
<p class="input-group">
<input type="text" class="form-control" uib-datepicker-popup="dd MMMM yyyy" ng-model="facture.Date_Paiement" is-open="popupDatePaiement.opened" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" close-text="Fermer" clear-text="Effacer" current-text="Aujourd'hui" readonly="readonly" ng-click="openDatePaiement()" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="openDatePaiement()"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
<div class="container text-center">
<button type="submit" class="btn btn-primary">Enregistrer</button>
<div class="btn btn-primary" ng-click="ChangeLocation('prev', '/#factures')">Retour</div>
</div>
</form>
Вот JS-код:
$scope.facture = {};
$scope.dateOptions = {
startingDay: 1
};
$scope.popupDatePaiement = {
opened: false
};
var openDatePaiement = $scope.openDatePaiement = function() {
$scope.popupDatePaiement.opened = true;
};
$scope.modifierFacture = function(){
console.log($scope.facture);
return
}
После просмотра кода я обнаружил, что:
- Я могу получить действительную дату с помощью средства выбора даты (была небольшая ошибка с ng-моделью), но если я дважды изменю дату, переменная facture.Date_Paiement останется с 1-м выбором, 2-й вариант не будет перенаправлен на него.
- Если я использую кнопку «очистить» внутри средства выбора даты, переменная facture.Date_Paiement не возвращается к нулю
Я попытался добавить эту строку:
$scope.Date_Paiement = ноль
внутри функции openDatePaiement, но в этом случае facture.Date_Paiement все время остается нулевым.