我试图创建一个流体文本区域,但是当使用"角度2方式"我无法在元素上设置高度。做DOM操作。
组件:
import {Directive, ElementRef, HostBinding, HostListener} from '@angular/core';
@Directive({
selector: '[fluidHeight]',
host: {
'(input)': 'setHeight()'
}
})
export class FluidHeightDirective {
constructor(private _elementRef: ElementRef) {}
@HostBinding('style.height.px')
height: number;
setHeight() {
this.height = this._elementRef.nativeElement.scrollHeight + 'px';
}
}
标记:
<textarea [(ngModel)]="model" fluidHeight></textarea>
为什么我在setHeight
函数中获得了正确的值但是textarea
上的高度没有设置?
答案 0 :(得分:4)
如果您在
中使用@HostBinding('style.height.px')
this.height = this._elementRef.nativeElement.scrollHeight + 'px';
你应该不在这里添加
@HostBinding('style.height')
使用
this.height = this._elementRef.nativeElement.scrollHeight;
或
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start