首先我要解释一下我想做什么。我在表单中有一个ion-textarea
,我想根据内容调整高度。我仍然是ionic2的新手,我正在努力做正确的事情并且学习如此我认为最好的方法是创建一个指令,然后在ion-textarea
中使用它。
基本上我需要的是:
- 从textarea
获取scrollHeight
- 将textarea
高度设置为scrollHeight
值
我知道如何使用Renderer设置高度值,我的问题是获取scrollHeight(或任何其他属性值)。
这是我的测试代码:
import {Directive, ElementRef, Renderer} from '@angular/core';
@Directive({
selector: '[textarea-autosize]',
})
export class TextareaAutosize{
private el: HTMLElement;
constructor(private element:ElementRef, private render:Renderer){
}
ngAfterViewInit(){
this.el = this.element.nativeElement.querySelector('textarea'); //I have checked without querySelector too
console.log(this.element.nativeElement.style); //this return CSSStyleDeclaration with all empty properties
console.log(this.el.scrollHeight); //this return always 0
console.log(this.el); //this return the html textarea code
this.render.setElementStyle(this.el, 'height', 100 + 'px'); //this set height to 100px
}
}
我google了很多,我发现人们得到像我这样的属性,因此,我做错了什么,或者我想要用另一种方式做什么。