我想填充一些動態問題形式(小提琴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