ich ein Formular mit einigen dynamischen Fragen (Geige here) auffüllen möchten:Wie kann ich einen dynamischen Modellnamen in AngularJS festlegen?
<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}}"]);
};
}
Alles funktioniert, außer das Modell buchstäblich Antworten [ „{{question.Name}}“], statt der ausgewerteten Antworten ["Geschlechtsfrage"]. Wie kann ich diesen Modellnamen dynamisch festlegen?
Ich schwöre, dass ich das versucht. Vielen Dank. Ich ging eigentlich eine andere Route, und stellen Sie das Modell nur in Frage. Antwort (ich werde eine aktualisierte Geige in einem Bit), die sich als eine direktere Antwort (muss aus der jQuery Denkweise), aber Es ist großartig zu wissen, dass ich es tatsächlich so machen kann, wie ich es ursprünglich für die Zukunft geplant hatte. Danke noch einmal! –
Aktualisierte Geige: http://jsfiddle.net/2AwLM/23/ –
Falls dies jemand anderem hilft, hatte ich ähnliche Probleme, aber mein Problem war, dass ich 'ng-pattern = "field.pattern" 'wann Was ich wirklich wollte, war 'pattern =" {{field.pattern}} "'.Irgendwie verwirrend, dass eckig normalerweise einen Helfer für dynamische Attribute bietet, aber diesmal schrieb es seine eigene clientseitige Validierung und gab ihm den gleichen Namen. – colllin