Угловая ошибка TS2554: Ожидалось 1 аргумент, но получено 0

#angular

Вопрос:

Я использую Angular-11.

У меня есть этот код:

header.component.html:

<a class=»btn btn-опасность btn-плоская плавающая справа» href=»javascript:пустота(0)» (нажмите)=»выход()»>Выход

заголовок.компонент.ts:

 logout($event: MouseEvent){
  // tslint:disable-next-line:no-unused-expression
  $event.preventDefault();
  this.loggedIn = false;
  this.token.remove();
  this.auth.changeAuthStatus(false);
  this.router.navigateByUrl('/login');
  this.notify.info("Logout Succesfully", {timeout:2000});
}
 

Я получил эту ошибку:

ошибка TS2554: Ожидалось 1 аргумент, но получено 0

<a class=»btn btn-опасность btn-плоская плавающая справа» href=»javascript:пустота(0)» (нажмите)=»выход()»>Выход

Он выделяет выход из системы().

Как мне решить эту проблему?

Спасибо

Комментарии:

1. ваша функция ожидает параметр : logout($event: MouseEvent) . Вы не передаете никаких параметров при его использовании в html-шаблон.

Ответ №1:

Ваш logout метод ожидает параметр (событие), который вы не предоставляете.

В шаблоне вы должны написать (click)='logout($event)' .

$event является переменной, предоставляемой Angular, представляющей событие.

Ответ №2:

Вы должны передать $event объект.

 (click)='logout($event)'
 

Ответ №3:

У вашей logout функции есть MouseEvent параметр, и вы не отправляете его в свой html-файл.

Ваш html-шаблон должен быть

 <a class="btn btn-danger btn-flat float-right" href="javascript:void(0)" (click)='logout($event)'>Sign out