私はいくつかの動的な質問(フィドル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の考え方から抜け出てください)。もともと、私が当初計画していたやり方で、私が実際にやることができることを知ってうれしいです。再度、感謝します! –
fiddle:http://jsfiddle.net/2AwLM/23/ –
これが他の人に役立つ場合、私は同様の問題を抱えていましたが、問題は私が 'ng-pattern =" field.pattern "'を使用していたことでした。私が本当に望んでいたのは 'pattern =" {{field.pattern}} "でした。その角度を混乱させる種類は、通常、動的属性のヘルパーを提供しますが、今回は独自のクライアント側の検証であり、同じ名前を付けました。 – colllin