我想填充一些动态问题形式(小提琴here):如何在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}}"]);
};
}
一切正常,除了模型实际上是答案[“{{question.Name}}”],而不是评价答案[ “GenderQuestion”]。我怎样才能动态设置模型名称?
我发誓,我试过了。非常感谢你。我实际上走了一条不同的路线,只是将模型设置为question.Answer(我会稍微提出一个更新的小提琴),这实际上是一个更直接的答案(要摆脱jQuery的心态),但很高兴知道我的确可以按照我原先计划的未来的方式进行。再次感谢! –
更新的小提琴:http://jsfiddle.net/2AwLM/23/ –
如果这有助于其他人,我有类似的问题,但我的问题是,我使用'ng-pattern =“field.pattern”'时我真正想要的是'pattern =“{{field.pattern}}”'。令人困惑的是角度通常为动态属性提供帮助,但是这次他们写了自己的客户端验证并给出了相同的名称。 – colllin