【发布时间】:2018-12-23 20:26:01
【问题描述】:
目前,我正在使用以下代码编写一个指令,用于根据用户输入自动调整文本区域的大小:
import { ElementRef, HostListener, Directive, OnInit } from '@angular/core';
@Directive({
selector: 'ion-textarea[autosize]'
})
export class Autosize implements OnInit {
@HostListener('input', ['$event.target'])
onInput(textArea:HTMLTextAreaElement):void {
this.adjust();
}
constructor(public element:ElementRef) {
}
ngOnInit():void {
setTimeout(() => this.adjust(), 0);
}
adjust():void {
const textArea = this.element.nativeElement.getElementsByTagName('textarea')[0];
textArea.style.overflow = 'hidden';
textArea.style.height = 'auto';
textArea.style.height = textArea.scrollHeight + 'px';
}
}
但是,我一直在努力增加最大高度。因为如果用户输入了很长的消息,文本区域将在视图之外展开。有没有办法让它扩展直到 textarea 的行达到 3 ,然后就像一个普通的文本区域一样工作,里面有滚动和固定的高度?
【问题讨论】:
标签: angular ionic-framework textarea directive