代码之家  ›  专栏  ›  技术社区  ›  Mr world wide

如何用AngularJS填充复选框值列表?

  •  0
  • Mr world wide  · 技术社区  · 6 年前

    我尝试用Angular JS和Serverside构建一个小测验应用程序,因为我有两种选择:

    1. 一个问题有多种选择 (input-checkbox) . "dataType": 3,
    2. 单一期权 一个问题。 (input-radio) "dataType": 2,

    我正在尝试为多个 checkbox 本例中的问题 storedAnswer 是一个数组,而 存储答案 是的整数值 input radio

    注: 存储答案 数组包含 option.questionChoiceValue

    我的问题是,如何在选中多项时填充数组值( 复选框 )问题:

    这是我的HTML代码:

    <div ng-repeat="question in data.questionData">
    
        <span name="multiSelectCheckBox" ng-if="question.dataType == 3">
            <div ng-repeat="option in question.choices " class="">
                <label for="mul_{{option.questionChoiceValue}}_ques{{option.questionId}}">
                    <span ng-repeat="stAns in question.storedAnswer"
                          ng-if="stAns == option.questionChoiceValue">
                        <input id="mul_{{option.questionChoiceValue}}_ques{{option.questionId}}" 
                            type="checkbox"
                            ng-model="question.storedAnswer"
                            ng-change="onSelect(question, option);" /> 
                          {{option.questionChoiceText}}
                    </span>
                </label>
            </div>
        </span>
    
        <span name="multiSelectRadio" ng-if="question.dataType == 2">
            <div ng-repeat="option in question.choices  " class="">
                <label for="sin_{{option.questionChoiceValue}}_ques{{option.questionId}}">
    
                    <input type="radio" id="sin_{{option.questionChoiceValue}}_ques{{option.questionId}}" 
                        ng-model="question.storedAnswer" 
                        value="{{option.questionChoiceValue | number}}"
                        name="que_ques{{option.questionId}}"
                        ng-change="onSelect(question, option);" />
                      {{option.questionChoiceText}}                 
                </label>
            </div>
        </span>
    </div>
    

    我有一个这样的物体:

    [
        {
            "marked": "false",
            "questionId": "7d00a35ddb6313004f3bdde748961969",
            "helpText": "",
            "answered": "true",
            "storedAnswer": [
                1,
                5
            ],
            "questionSno": 1,
            "dataType": 3,
            "choices": [
                {
                    "questionId": "7d00a35ddb6313004f3bdde748961969",
                    "questionChoiceValue": 5,
                    "questionChoiceText": "Float, long double"
                },
                {
                    "questionId": "7d00a35ddb6313004f3bdde748961969",
                    "questionChoiceValue": 4,
                    "questionChoiceText": "Float"
                },
                {
                    "questionId": "7d00a35ddb6313004f3bdde748961969",
                    "questionChoiceValue": 3,
                    "questionChoiceText": "float, double, long double"
                },
                {
                    "questionId": "7d00a35ddb6313004f3bdde748961969",
                    "questionChoiceValue": 2,
                    "questionChoiceText": "long double, short int"
                },
                {
                    "questionId": "7d00a35ddb6313004f3bdde748961969",
                    "questionChoiceValue": 1,
                    "questionChoiceText": "short int, double, long int, float"
                }
            ],
            "questionText": "In C, what are the various types of real data type (floating point data type)?",
            "selected": "false"
        },
        {
            "marked": "false",
            "questionId": "93e5c5e5db6713004f3bdde748961957",
            "helpText": "",
            "answered": "false",
            "storedAnswer": 1,
            "questionSno": 3,
            "dataType": 2,
            "choices": [
                {
                    "questionId": "93e5c5e5db6713004f3bdde748961957",
                    "questionChoiceValue": 3,
                    "questionChoiceText": "May be"
                },
                {
                    "questionId": "93e5c5e5db6713004f3bdde748961957",
                    "questionChoiceValue": 2,
                    "questionChoiceText": "False"
                },
                {
                    "questionId": "93e5c5e5db6713004f3bdde748961957",
                    "questionChoiceValue": 1,
                    "questionChoiceText": "True"
                }
            ],
            "questionText": "A macro can execute faster than a function.",
            "selected": "false"
        }
    ]
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   georgeawg    6 年前

    <input type="radio" id="sin_{{option.questionChoiceValue}}_ques{{option.questionId}}"
           ng-checked="question.storedAnswer"
           value="{{option.questionChoiceValue | number}}"
           name="que_ques{{option.questionId}}"
           ng-change="onSelect(question, option);" />