Как отправить значение родительскому компоненту из дочернего компонента на основе условия?

#angular

#angular

Вопрос:

Это не работает, и тип ошибки, отображающий значение boolean, не может быть присвоен типу value?: boolean . Кроме того, я хочу, чтобы значение registered изначально было false . Можем ли мы инициализировать его в выходных данных? В настоящее время это undefined изначально. Когда пользователь успешно регистрируется при отправке, registered должен измениться на true в компоненте register, а его значение должно перейти к родительскому компоненту

child.component.ts (дочерний)

 export class RegisterComponent implements OnInit {
    @Output() registered: EventEmitter<boolean> = new EventEmitter<boolean>();

    onSubmit() {
    this.reg.registerUser(this.registerForm.value).subscribe(
          (res) => {
              this.registered.emit = res ? true : false;
              ....
              ....
             }
  

home.component.ts (родительский)

  <app-register (registered)="doSomething($event)"></app-register>
  

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

1. this.registered.emit(res ? true : false)

2. Или просто this.registered.emit(!!res) или this.registered.emit(Boolean(res))

Ответ №1:

Вот emit() метод, поэтому вам нужно вызвать метод, подобный приведенному ниже

 export class RegisterComponent implements OnInit {
    @Output() registered: EventEmitter<boolean> = new EventEmitter<boolean>();

    onSubmit() {
    this.reg.registerUser(this.registerForm.value).subscribe(
          (res) => {
              let isRegistered = res ? true : false;
              this.registered.emit(isRegistered);
              ....
              ....
         }
 }
  

Надеюсь, это поможет!

Ответ №2:

Вы можете выдать false в ngOnInit-

 ngOnInit(){
 this.registered.emit (false);
}
  

И измените код следующим образом-

 this.registered.emit ( res ? true : false);