#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);