diff --git a/README.md b/README.md
index 628ebae..10cc6d5 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ import {Autosize} from 'angular2-autosize';
@Component({
template: `
-
+
`,
directives: [Autosize]
})
diff --git a/src/autosize.directive.ts b/src/autosize.directive.ts
index 574070e..63bda43 100644
--- a/src/autosize.directive.ts
+++ b/src/autosize.directive.ts
@@ -1,22 +1,25 @@
-import { ElementRef, HostListener, Directive} from '@angular/core';
+import { Directive, ElementRef, HostListener, Input, SimpleChange, Renderer } from '@angular/core';
@Directive({
selector: 'textarea[autosize]'
})
-
export class Autosize {
- @HostListener('input',['$event.target'])
- onInput(textArea: HTMLTextAreaElement): void {
- this.adjust();
+ @Input() autosize: string;
+
+ constructor(public renderer: Renderer, public element: ElementRef) {
+ this.renderer.setElementAttribute(this.element.nativeElement, 'rows', '1');
}
- constructor(public element: ElementRef){
- }
- ngAfterContentChecked(): void{
+
+ ngOnChanges(changes: {[key: string]: SimpleChange}) {
this.adjust();
}
+
adjust(): void{
- this.element.nativeElement.style.overflow = 'hidden';
- this.element.nativeElement.style.height = 'auto';
- this.element.nativeElement.style.height = this.element.nativeElement.scrollHeight + "px";
+ this.renderer.setElementStyle(this.element.nativeElement, 'overflow', 'hidden');
+ this.renderer.setElementStyle(this.element.nativeElement, 'height', 'auto');
+ let scrollHeight = this.element.nativeElement.scrollHeight;
+ if(scrollHeight > 0) {
+ this.renderer.setElementStyle(this.element.nativeElement, 'height', scrollHeight + 'px');
+ }
}
-}
+}
\ No newline at end of file