繁体   English   中英

使用Angular 2指令不在元素上设置高度

[英]Height not being set on element using Angular 2 directive

我正在尝试创建一个流体textarea但是当使用“角度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上设置高度?

如果你使用.px

@HostBinding('style.height.px')

应该添加在这里以及

this.height = this._elementRef.nativeElement.scrollHeight + 'px';

使用其中之一

@HostBinding('style.height')

要么

    this.height = this._elementRef.nativeElement.scrollHeight;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM