最佳答案
我有一个具有 <p>
元素的组件。它的 (click)
事件将把它变成一个 <textarea>
。因此,用户可以编辑数据。我的问题是:
textarea
上?.focus()
?document.getElemenntById()
吗?我尝试使用“ ElementRef”和“@ViewChild ()”,但似乎遗漏了一些东西:
应用程序组件
@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'
);
}
App.Component. html
<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>