我写了一条指令,可以在用户键入时自动更改离子文本区域的高度。但是,更改离子文本区域的高度本身不起作用。我的指令中更改高度的代码:
adjust(): void {
console.log(this.element.nativeElement);
let nativeElement = this.element.nativeElement;
nativeElement.style.overflow = 'hidden';
nativeElement.style.height = 'auto';
nativeElement.style.height = nativeElement.scrollHeight + "px";
}
我怀疑高度没有变化,因为this.element.nativeElement是ion-textarea(而不是textarea)。如何访问本地文本区域以更改其高度?
这是显示该问题的 STACKBLITZ 。该指令是自动调整大小指令,带有ion-textarea的页面是主页。
答案 0 :(得分:0)
因此可以在指令的宿主侦听器中访问本地文本区域:
@HostListener('input', ['$event.target'])
onInput(textArea: HTMLTextAreaElement): void {
this.adjust(textArea);
}
之后,可以在adjust()函数中操纵文本区域。