Как отобразить таймер обратного отсчета на угловом тостере

0

Я использую модули ng-Idle (ngIdle) и Angular Toaster (тостер). Я хочу отобразить сообщение тостера на событии IdleWarn ng-idle со значением обратного отсчета.

$scope.$on('IdleWarn', function(e, countdown) {
      console.log("Timeleft: " + countdown);
      toaster.warning('Title', '<section>' + countdown + '</section>', 0, 'trustedHtml', undefined, undefined, true, undefined, undefined);
    }

Это дает только тостер со статическим обратным отсчетом. Как реализовать таймер обратного отсчета для отображения счетчика с помощью этого тостера.

Теги:

1 ответ

1

Мне удалось решить это, отредактировав свойство сообщения напрямую. Убедитесь, что вы используете последнюю версию углового тостера (v.2.1.1 на момент написания).

var sessionToast;
$scope.toastr = // Injected via angularJS

$scope.$on('IdleWarn', function (e, countdown) {

if (sessionToast) {
    sessionToast.scope.message = countdown + ' seconds';
    sessionToast.scope.$digest();
}
else {
    sessionToast = self.toastr.warning(countdown + ' seconds', 'You will be logged out due to inactivity in:', {
        timeOut: 0,
        preventDuplicates: true,
        onHidden: () => {
            sessionToast = undefined;
        }
    });

}


});

$scope.$on('IdleEnd', function () {
    $scope.toastr.clear();
});

$scope.$on('IdleTimeout', function () {
    // do logout
    $scope.toastr.clear();
    // Maybe show a you have been logged out message.
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню