Me gustaría bloquear el evento que ocurre cuando se presiona la barra espaciadora. El punto es que el usuario no debería poder ingresar un espacio vacío en la entrada. El problema ocurre en el sistema macOs donde el doble espacio se convierte en un punto. Luego, a pesar de que la entrada en la plantilla tiene (keydown.space)="$event.preventDefault()" , se agrega un punto al texto de entrada con un espacio al final. ¿Hay alguna opción para bloquear este comportamiento? También traté de editar texto con setValue en valueChanges , pero luego el cursor cambia de posición y no se ve bien. Estaré muy agradecido por cualquier sugerencia.
// profile.component.ts @Component({ selector: 'app-profile', templateUrl: './profile.component.html', styleUrls: ['./profile.component.scss'], }) export class ProfileComponent implements OnInit, OnDestroy { userEmail = new FormControl(''); destroy$ = new Subject<void>(); ngOnInit() { this.observeUserEmailValue(); } ngOnDestroy(): void { this.destroy$.next(); this.destroy$.unsubscribe(); } observeUserEmailValue(): void { this.userEmail.valueChanges .pipe(takeUntil(this.destroy$)) .subscribe((userEmailValue: string) => { this.userEmail.setValue(userEmailValue.trim(), { emitEvent: false, }); }); } } // profile.component.html <input type="email" [formControl]="userEmail" (keydown.space)="$event.preventDefault()" >Creo que el comportamiento que desea evitar podría estar en keyup , no keydown .