J'ai un composant qui a un p
élément. Ses onClick
événement va changer à une textarea
de sorte que l'utilisateur peut modifier les données. Ma question est:
- Comment je peux la faire la mise au point sur le textarea?
- Comment je peux arriver à l'élément afin que je puisse appy l' .focus() sur celui-ci?
- Puis-je éviter l'utilisation de document.getElemenntById() ?
J'ai essayé d'utiliser le "ElementRef" et le "@ViewChild()" cependant, il semble qu'il me manque quelque chose:
// ------ THE CLASS
@ViewChild('tasknoteId') taskNoteRef:ElementRef;
noteEditMode: boolean = false;
get isShowNote (){
return !this.noteEditMode && this.todo.note ? true : false;
}
taskNote: string;
toggleNoteEditMode () {
this.noteEditMode = !this.noteEditMode;
this.renderer.invokeElementMethod(this.taskNoteRef.nativeElement,'focus');
}
// ------ THE COMPONENT
<span class="the-insert">
<form [hidden]="!noteEditMode && todo.note">
<textarea #tasknoteId id="tasknote"
name="tasknote"
[(ngModel)]="todo.note"
placeholder="{{ notePlaceholder }}"
style="background-color:pink"
(blur)="updateNote()" (click)="toggleNoteEditMode()"
[autofocus]="noteEditMode"
[innerHTML]="todo.note">
</textarea>
</form>
</span>