Ich habe eine Tabelle mit mehreren Elementen im Inneren. Diese Artikel haben eine aktive Spalte mit einem Kontrollkästchen, das anzeigt, ob dieser Artikel aktiv ist. Der Benutzer kann manuell deaktivieren, um die Elemente zu deaktivieren, aber die Elemente haben auch ein Ablaufdatum. Was ich erreichen möchte, ist, dass wenn der Ablauf eines Artikels ankommt, die Box automatisch deaktiviert werden muss und der Status von "Aktivieren" auf "Deaktivieren" geändert werden muss. So ist der Benutzer nicht mehr zu sehen.AngularJS: Wie man ein Kontrollkästchen automatisch deaktiviert, wenn das Element bezogen auf ein Datum abgelaufen ist
ich bin mit Ihnen zu teilen, was ich als Beispiel habe:
Dies ist der Controller:
for (var i = 0; i < $scope.item.length; i++) {
var a = new Date($scope.item[i].to)
var b = new Date()
if ($scope.item[i].to != null && (a < b)) {
$scope.item[i].expired = true
}
}
$scope.changeStatus = function(item) {
item.isDisabled = !item.isDisabled;
$scope.save(item);
};
$scope.save = function(item) {
ItemResource.update(item, function success() {
$scope.loadingAction = false
toaster.pop({ type: 'success', body: $translate.instant('notifications', { name: item.name }) })
}, function error() {})
}
Ausblick:
<td class="td-with-button center valign-top">
<span class="cursor-pointer" ng-click="changeStatus(item)">
<i class="icon--big fa fa-check-circle-o" ng-class="{'fa-check-circle-o' : !item.isDisabled, 'fa-circle-o' : item.isDisabled}"></i>
</span>
</td>