2013-01-09 16 views
7

Quando vincolante valore di ingresso a un modello ng in questo modo:In angolare, come faccio in modo efficiente diviso elementi di input in un array

<input type="text" ng-model="array"> 

come faccio associare il testo di input come un array? Quindi se inserisco one, two, three, il modello risultante sarà [ "one","two","three ].

In questo momento questo è come sto raggiungimento di questo:

<input type="text" ng-model="string" ng-change="convertToArray()"> 

E nel mio controller:

$scope.convertToArray = function(){ 
    $scope.array = $scope.string.split(','); 
} 

funziona benissimo, ma non credo che sia delle migliori pratiche perché sono creando una variabile $scope.string e quindi codificando l'array di destinazione.

È possibile semplicemente impostare il modello di input in array e quindi far passare l'input attraverso la funzione prima di essere associato all'ambito?

risposta

20

ngList farà esattamente quello che vuoi.

Immissione di testo che converte tra una stringa separata da virgola in una matrice di stringhe.

0

No. Poiché l'input sarà una stringa dall'utente, è necessario convertirlo manualmente in array o in qualsiasi altro formato.

Discussione simile e altro approccio è discusso qui. probabilmente questo potrebbe aiutare. (Vedi risposta accettata in questo)

How do I set the value property in AngularJS' ng-options?

Problemi correlati