2017-03-16 5 views
2

Ich arbeite an angular2 Anwendung. Ich habe eine Anforderung, Textarea zu verkleinern. Ich versuche, die angular2-Auto-Size von https://github.com/stevepapa/angular2-autosizeAutosize textarea in angular2

die readme Gefolgt wieder zu verwenden, aber ich erhalte die folgenden Fehler

nicht erfasste Fehler: Modul Build fehlgeschlagen: Fehler: ENOENT: keine solche Datei oder das Verzeichnis, offen ' C: \ Benutzer \ Vipin \ SampleApp \ node_modules \ angular2-autosize \ angular2-autosize.js '.

Bitte schlagen Sie vor, wie Sie dieses Problem beheben können.

Antwort

5

Ich hatte das gleiche Problem heute und habe es behoben! Bitte überprüfen Sie meine Gabel: https://github.com/chrum/angular2-autosize

Bis PR verschmolzen Versuch:

npm install https://github.com/chrum/angular2-autosize.git --save 

Und dann in Ihrem Code, weil es etwas anders ist, müssen Sie nur importieren Modul nicht die Richtlinie ...

so statt:

import {Autosize} from 'angular2-autosize'; 

@NgModule({ 
    ... 
    declarations: [ 
    Autosize 
    ] 
    ... 
}) 

Sie sollten haben:

import {AutosizeModule} from 'angular2-autosize'; 

@NgModule({ 
    ... 
    imports: [ 
    AutosizeModule 
    ] 
    ... 
}) 
4

Sie so tun können, um das Paket ohne Verwendung. sein einfaches

in Controller wie unter

autogrow(){ 
    let textArea = document.getElementById("textarea")  
    textArea.style.overflow = 'hidden'; 
    textArea.style.height = '0px'; 
    textArea.style.height = textArea.scrollHeight + 'px'; 
} 

und in html wie unter

<textarea id="textarea" (keyup)="autogrow()" ></textarea> 
+4

Obwohl dies funktioniert, bricht es Angular Philosophie (dh manipuliert nicht direkt auf das DOM). Anstatt document.getElementById zu verwenden, verwenden Sie @ViewChild, um einen Verweis auf den Textbereich zu erhalten (da es sich um ein Kind der Komponente handelt). – rmcsharry

Verwandte Themen