Voglio rendere un form, sulla base di una configurazione di campo dinamico:Come posso utilizzare Angolare per generare campi modulo dinamici?
$scope.fields = [
{ title: 'Label 1', type: 'text', value: 'value1'},
{ title: 'Label 2', type: 'textarea', value: 'value2'}
];
Questo dovrebbe produrre qualcosa che si comporta come:
<div>
<label>{{field.title}}<br />
<input type="text" ng-model="field.value"/>
</label>
</div>
<div>
<label>{{field.title}}<br />
<textarea ng-model="field.value" rows="5" cols="50"></textarea>
</label>
</div>
La semplice implementazione sarebbe quella di utilizzare if
dichiarazioni per rendere la modelli per ogni tipo di campo. Tuttavia, poiché Angular non supporta le dichiarazioni if
, sono guidato alla direzione delle direttive. Il mio problema è capire come funziona il binding dei dati. Il documentation for directives è un po 'denso e teorico.
ho preso in giro un esempio ossa nude di quello che cerco di fare qui: http://jsfiddle.net/gunnarlium/aj8G3/4/
Il problema è che i campi del modulo non sono vincolati al modello, in modo che il $ scope.fields a presentare () non è aggiornato. Ho il sospetto che il contenuto della mia funzione direttiva è del tutto sbagliato ... :)
Andando avanti, ho bisogno di sostenere anche altri tipi di campo, come pulsanti di opzione, caselle di controllo, seleziona, ecc
Possibile duplicato di [AngularJS: impossibile modificare il tipo di input] (http://stackoverflow.com/questions/15148456/angularjs-cant-change-input-type) – Aides