Situación un poco complicada. Para el código a continuación, he agregado (keydown.enter)="false" para ignorar la línea de ruptura/botón enter en el área de texto
Esto está causando un problema de usuario y le gustaría que el comportamiento existente en el que presionar Entrar debería activar automáticamente el "botón Guardar"
¿Alguna idea de cómo activar el botón Guardar cuando aún se enfoca en textArea pero ignora la línea de corte?
<textarea #textArea style="overflow:hidden; height:auto; resize:none;" rows="1" class="form-control" [attr.placeholder]="placeholder" [attr.maxlength]="maxlength" [attr.autofocus]="autofocus" [name]="name" [attr.readonly]="readonly ? true : null" [attr.required]="required ? true : null" (input)="onUpdated($event)" [tabindex]="skipTab ? -1 : ''" (keydown.enter)="false" [(ngModel)]="value"> </textarea >Extendiendo la respuesta por @Pengyy
Puede vincular la tecla enter a una función pseudoSave y prevenirDefault dentro de eso, evitando así tanto la función Guardar como la nueva línea. Luego, puede llamar a la función de guardar desde allí (suponiendo que sea accesible como un servicio) o puede emitir un EventEmitter, y hacer que esa emisión quede atrapada para activar la función Guardar.
puede vincular la misma función del botón Save a keydown.enter de texterea y llamar a $event.preventDefault para evitar la nueva línea.
plunker de muestra.
Suponiendo que su área de textarea está dentro de un elemento de form .
Puede lograrlo usando una entrada de envío oculta , como esta
@Component({ selector: 'my-app', template: ` <form (submit)="formSubmitted($event)"> <input #proxySubmitBtn type="submit" [hidden]="true"/> <textarea #textArea (keydown.enter)="$event.preventDefault(); proxySubmitBtn.click()"> </textarea> </form> `, }) export class App { formSubmitted(e) { e.preventDefault(); alert('Form is submitted!'); } }