1. ホーム
  2. angularjs

[解決済み] AngularJSで動的なモデル名を設定するにはどうすればよいですか?

2023-03-12 06:01:27

質問

私はフォームにいくつかの動的な質問を入力したいと思います (fiddle ここで ):

<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}}"]);
    };
}​

モデルは評価されたAnswers["GenderQuestion"]ではなく、文字通りAnswers["{{question.Name}}"]となっていますが、全て動作しています。このモデル名を動的に設定するにはどうすればよいですか?

どのように解決するのですか?

http://jsfiddle.net/DrQ77/

javascriptの式は、単純に ng-model .