angularjs - ngbtooltip - Angular UI Bootstrap DatePicker-obtener fecha seleccionada en cerrar/desenfoque
pagination angular 6 (4)
Tengo una repetición ng con cada fila que tiene múltiples Selecciones de fecha UI-Bootstrap. Estoy intentando llamar a una función en mi controlador cuando se selecciona la fecha y el selector se cierra. He intentado usar UI-Event para capturar el evento borroso, pero el modelo no se ha actualizado cuando se llama. Mi pregunta es ¿cómo puedo obtener la fecha seleccionada cuando se cierra el selector? ¿Puedo hacer algo como ui-event="{ blur : ''myBlurFunction( $event, this.text)'' }
, o hay otra forma de obtener los datos con un evento onClose?
<li ng-repeat="....">
<div ng-click="openEditStartCal($event, ticket)">
<input ui-event="{ blur : ''blurredStartDate( $event, ticket, this.text)'' }"
type="text"
starting-day="2"
show-button-bar="false"
show-weeks="false"
class="form-control addTicketDateInput"
datepicker-popup="dd MMM"
ng-model="ticket.StartDate"
is-open="startEditTicketOpened && currentTicketUpdating == ticket.TicketId"
min-date="{{today()}}"
max-date="''2015-06-22''"
datepicker-options="dateOptions"
date-disabled="disabled(date, mode)"
ng-required="true" close-text="Close" />
</div>
Esto es posible usando
ng-change
:
archivo html / jsp
<input type="text"
id="StartDate"
name="StartDate"
class="form-control input-sm"
uib-datepicker-popup="{{format}}"
ng-model="StartDateVal"
is-open="status.opened"
min-date="min"
max-date="max"
datepicker-options="dateOptions"
date-disabled="disabled(date, mode)"
ng-required="true"
close-text="Close"
readonly="true"
ng-change="select(StartDateVal)" />
Controlador .js
$scope.select = function(date) {
// here you will get updated date
};
Puede poner un $ watch en su controlador para su fecha variable.
$scope.$watch(''ticket.StartDate'',function(){
var date = $scope.ticket.StartDate;
});
También estaba lidiando con esto y en Cambio no me haría el trabajo, así que fui a ui bootstrap .js y agregué algunas cosas. Entonces puedo configurar una función para que sea llamada en HTML a través del atributo de cierre.
<input type="text" on-close="dateClosed()" ng-model="date" datepicker-popup="dd.MM.yyyy" is-open="dateOpened" ng-click="dateOpened=true" />
entonces necesitas cambiar el ui-bootstrap.js en
.directive(''datepickerPopup'' ... function(...) ... return { ...
scope: { ... , onClose: ''&'' }
Hay 3 opciones para cerrar el selector: selección de fecha, clic en otro lugar o botón hecho. lo puedes encontrar fácilmente, es el único lugar donde isOpen está configurado como falso
scope.isOpen = false;
Entonces simplemente llamo una función en esos 3 lugares, donde llamo la función desde el atributo
scope.onClosing = function () {
if (angular.isDefined(attrs.onClose))
scope.onClose();
}
Si quieres el ui-bootstrap.js PM me, lo hice solo en la versión tpls.
ng-change="myChangeFunction()"
esto usando: ng-change="myChangeFunction()"
.