2015-04-23 23 views
7

Sto provando a componente do a simple binding from an Angular2 per il modello. Il mio codice modello si presenta così ...Come eseguire un semplice inserimento di testo bind in Angular 2

<textarea class="left-side" #newLeft (keyup)="enterLeftText($event, newLeft)"></textarea> 

<textarea class="right-side">{{leftText}}</textarea> 

Poi nel mio componente ho il seguente ...

enterLeftText($event, newLeft) { 
    this.leftText = newLeft.value; 
} 

Il problema è che newLeft è sempre indefinito. Cosa mi manca?

+2

Sembra che textarea non supporti la notazione '# binding '. Forse non ancora implementato, dovrai creare la tua direttiva per guardare gli eventi e aggiornare il modello – floribon

+0

cambiandolo in input http://plnkr.co/edit/dtbDwneFFIiTazjiF7Li?p=preview ancora senza fortuna – Jackie

+0

hai ragione , l'errore era altrove, vedere la mia risposta – floribon

risposta

9

Hai trovato un bug interessante, in quanto sembra che non possiamo avere un maiuscolo in un binding #id.

semplice sostituzione newLeft con newleft risolverà il vostro problema:

http://plnkr.co/edit/ngqd0cUXyxsgBKOBSr9S?p=preview


UPDATE: infatti sembra che l'id dovrebbe essere dash-nota e la variabile è caso cammello, come è il caso su Angular 1 quando si assegnano attributi.

Quindi la vera risposta al vostro problema è quello di scrivere #new-left:

<textarea class="left-side" #new-left (keyup)="enterLeftText($event, newLeft)"></textarea> 
+0

sintassi pazzo =) in confronto a ' ' –

+0

@arebutuv che la sintassi non è equivalente al codice dato . Vuole eseguire una funzione su key-up. –

+1

I modelli ora sono CamelCase (dal tardo beta) e '# newLeft' dovrebbe funzionare correttamente. –

0

Quando si utilizza "# new-sinistra" Ho ottiene un'eccezione

EXCEPTION: Error: Uncaught (in promise): Template parse errors: "-" is not allowed in variable names

La soluzione con i nomi delle variabili formato camelCase funziona bene ora per me.