Ich bin total neu in eckig und ich versuche angular-bootstrap-datetimepicker in meinem Projekt zu verwenden. Mein html-Code ist:angular-bootstrap-datetimepicker Kalender schließen, wenn außerhalb geklickt wird
Ich wollte einen Kalender schließen, wenn der Benutzer irgendwo außerhalb klickt. Ich kopierte fast den Code von ui.bootstrap. Original ist im Inneren Richtlinie und sieht wie folgt aus:
var documentClickBind = function(event) {
if (scope.isOpen && event.target !== element[0]) {
scope.$apply(function() {
scope.isOpen = false;
});
}
};
scope.$watch('isOpen', function(value) {
if (value) {
scope.$broadcast('datepicker.focus');
scope.position = appendToBody ? $position.offset(element) : $position.position(element);
scope.position.top = scope.position.top + element.prop('offsetHeight');
$document.bind('click', documentClickBind);
} else {
$document.unbind('click', documentClickBind);
}
});
Meine Version (im Controller):
var documentClickBind = function (event) {
if ($scope.openedDP) {
$scope.$apply(function() {
$scope.openedDP = false;
});
}
};
$scope.$watch('openedDP', function (value) {
if (value) {
$timeout(function() {
$document.bind('click', documentClickBind);
}, 0, false);
} else {
$document.unbind('click', documentClickBind);
}
});
I entfernt "Element" Variable, weil ich es nicht in meinem Controller und es scheint, zu arbeiten, aber ich weiß nicht warum. Vielleicht funktioniert es nur zufällig? Warum klickt man in den Kalender anders als irgendwo anders zu klicken? Darüber hinaus möchte ich vermeiden, mehrere Funktionen wie diese zu erstellen, wenn ich mehrere Datumsauswahl auf einer Seite habe.
Ich denke, Sie beziehen sich auf [this datetimepicker] (https://dalotts.github.io/angular-bootstrap-datetimepicker/). Das ist das Standardverhalten, richtig? – Paritosh
Ohne dieses Stück Code muss ich erneut auf die gleiche Schaltfläche klicken, um den Kalender zu schließen. –