Estoy trabajando en la aplicación angular2. tengo un requisito para autodimensionar textarea. Estoy tratando de reutilizar angular2-autosize de https://github.com/stevepapa/angular2-autosize
Seguí el archivo Léame, pero recibo el siguiente error
Error no detectado: Falló la construcción del módulo: Error: ENOENT: no existe tal archivo o directorio, abra 'C:\Users\Vipin\SampleApp\node_modules\angular2-autosize\angular2-autosize.js'.
Por favor, sugiera cómo superar este problema.
El comportamiento solicitado ya está implementado en angular material
como se documenta aquí: Tamaño automático de entrada de material angular . Esto es especialmente útil si está utilizando angular material
de todos modos.
Simplemente use cdkTextareaAutosize
como en el ejemplo:
<textarea cdkTextareaAutosize></textarea>
Actualización (15.04.2018) Logré empaquetarlo, ahora está disponible como
npm install ngx-autosize
https://github.com/chrum/ngx-autosize
Respuesta antigua :
Tuve el mismo problema hoy y lo solucioné! Por favor revise mi bifurcación: https://github.com/chrum/angular2-autosize
Hasta que PR se fusione intente:
npm install https://github.com/chrum/angular2-autosize.git --save
Y luego en su código, porque es ligeramente diferente, solo importa el módulo, no la directiva...
así que en lugar de :
import {Autosize} from 'angular2-autosize'; @NgModule({ ... declarations: [ Autosize ] ... })
deberías tener :
import {AutosizeModule} from 'angular2-autosize'; @NgModule({ ... imports: [ AutosizeModule ] ... })
puedes hacer esto sin usar el paquete. es simple
en el controlador como a continuación
autogrow(){ let textArea = document.getElementById("textarea") textArea.style.overflow = 'hidden'; textArea.style.height = '0px'; textArea.style.height = textArea.scrollHeight + 'px'; }
y en html como a continuación
<textarea id="textarea" (keyup)="autogrow()" ></textarea>