voglio compilare un modulo con alcune domande dinamiche (violino here):Come posso impostare un nome di modello dinamico in AngularJS?
<div ng-app ng-controller="QuestionController">
<ul ng-repeat="question in Questions">
<li>
<div>{{question.Text}}</div>
<select ng-model="Answers['{{question.Name}}']" ng-options="option for option in question.Options">
</select>
</li>
</ul>
<a ng-click="ShowAnswers()">Submit</a>
</div>
function QuestionController($scope) {
$scope.Answers = {};
$scope.Questions = [
{
"Text": "Gender?",
"Name": "GenderQuestion",
"Options": ["Male", "Female"]},
{
"Text": "Favorite color?",
"Name": "ColorQuestion",
"Options": ["Red", "Blue", "Green"]}
];
$scope.ShowAnswers = function()
{
alert($scope.Answers["GenderQuestion"]);
alert($scope.Answers["{{question.Name}}"]);
};
}
Tutto funziona, tranne il modello è letteralmente Answers [ "{{}} question.Name"], al posto delle risposte valutati [ "GenderQuestion"]. Come posso impostare dinamicamente il nome di questo modello?
Giuro ho provato. Grazie mille. In realtà ho seguito un percorso diverso, e ho semplicemente impostato il modello su cui porre domande. Risposta (farò uscire un violino aggiornato in un po '), che si è rivelata una risposta più diretta (devo uscire dalla mentalità jQuery), ma è bello sapere che posso, in effetti, farlo nel modo in cui inizialmente avevo programmato il futuro. Grazie ancora! –
Fiddle aggiornato: http://jsfiddle.net/2AwLM/23/ –
Nel caso in cui questo aiuti qualcun altro, stavo riscontrando problemi simili, ma il mio problema era che stavo usando 'ng-pattern =" field.pattern "' quando quello che volevo veramente era 'pattern =" {{field.pattern}} "'.Un po 'di confusione che l'angolare di solito fornisce un aiuto per gli attributi dinamici, ma questa volta ha scritto la propria convalida sul lato client e gli ha dato lo stesso nome. – colllin