Таймер для скрытых оповещений о ясности

Я пытаюсь скрыть предупреждения ясности в течение 2-3 секунд, но с этим кодом t не отображается, и я не понимаю.

 import { Observable} from 'rxjs/Rx';

 public timerAlert: boolean = false;

 ngOnInit() {
   let timer =  Observable.timer(2000, 3000);
        timer.subscribe( () => {
           this.timerAlert = true; --> with this line My alert doesn't show.
        });

    }

Html

   <clr-alert  [(clrAlertClosed)]="timerAlert"  [clrAlertClosable]="false" [clrAlertType]="'alert-danger'" *ngIf="errorServer">
       <clr-alert-item>
           <span class="alert-text">
                 {{ this.myMessage.message }}
            </span>
        </clr-alert-item>
    </clr-alert>

[clrAlertClosable]="false" for hidde 'x' in Alert.
[(clrAlertClosed)]="timerAlert" with this, I should show or not the alert.

1 ответ

Я могу решить это... 50%

 import { Observable } from 'rxjs/Rx';
  public timerAlert: boolean = false;

 ngOnInit() {
        let timer = Observable.timer(10, 8000);
        this.timerAlerts(timer);

    }

 private timerAlerts(timer) {
        timer.subscribe(() => {

            if (this.errorServer || this.confirmedServer) {
                this.timerAlert = true; // firstTrue
                this.timerAlert = false;
                this.errorServer = false;
                this.confirmedServer = false;
            }
        });
    }

Единственная проблема... Если вы вставляете или изменяете быстро, время не начинается, то есть, если вы изменяете что-то в течение 7 секунд, подтверждение сообщения только 1 секунда...

HTML

 <clr-alert  [(clrAlertClosed)]="timerAlert"  [clrAlertClosable]="false" [clrAlertType]="'alert-danger'" *ngIf="errorServer">
       <clr-alert-item>
           <span class="alert-text">
                 {{ this.myMessage.message }}
            </span>
        </clr-alert-item>
    </clr-alert>

     <clr-alert  [(clrAlertClosed)]="timerAlert"  [clrAlertClosable]="false" [clrAlertType]="'alert-success'" *ngIf="confirmedServer">
         <clr-alert-item>
             <span class="alert-success">
                 {{ this.myMessage.message }}
             </span>
         </clr-alert-item>
    </clr-alert>

Как я могу решить это?

Другие вопросы по тегам