вычисление правильных ответов и отображение общего балла в тесте AngularJS - PullRequest
0 голосов
/ 04 марта 2019

Я создаю приложение для викторин в AngularJS, но я не знаю, как перебирать вопросы, чтобы добавлять и отображать правильные ответы.

Пожалуйста, помогите Я новичок в программировании.

Тест в формате JSON, как показано ниже:

"questions": [{
        "Id": 5,
        "Name": "In a village, the number of people infected with HIV in 2001 was 100. In 2004, 250 people were infected. Find the ratio of those infected in 2001 to those infected in 2004.",
        "QuestionTypeId": 1,
        "Options": [
            { "Id": 1, "QuestionId": 1, "Name": "A. 1:5", "Answer": false },
            { "Id": 2, "QuestionId": 1, "Name": "B. 2:5", "Answer": true },
            { "Id": 3, "QuestionId": 1, "Name": "C. 3:5", "Answer": false },
            { "Id": 4, "QuestionId": 1, "Name": "D. 5:1", "Answer": false },
            { "Id": 5, "QuestionId": 1, "Name": "E. 5:2", "Answer": false }],
        "QuestionType": { "Id": 1, "Name": "Multiple Choice", "Active": true }
    },
    {
        "Id": 6,
        "Name": "The ratio of the length to the breadth of a room is 7:5. Find the length of the room if the breadth is 10m.",
        "QuestionTypeId": 1,
        "Options": [
            { "Id": 1, "QuestionId": 1, "Name": "A. 10m", "Answer": false },
            { "Id": 2, "QuestionId": 1, "Name": "B. 12m", "Answer": false },
            { "Id": 3, "QuestionId": 1, "Name": "C. 14m", "Answer": true },
            { "Id": 4, "QuestionId": 1, "Name": "D. 21m", "Answer": false },
            { "Id": 5, "QuestionId": 1, "Name": "E. 35m", "Answer": false }],
        "QuestionType": { "Id": 1, "Name": "Multiple Choice", "Active": true }
    },
    {
        "Id": 7,
        "Name": "Increase 80 by 10%.",
        "QuestionTypeId": 1,
        "Options": [
            { "Id": 1, "QuestionId": 1, "Name": "A. 8m", "Answer": false },
            { "Id": 2, "QuestionId": 1, "Name": "B. 10m", "Answer": false },
            { "Id": 3, "QuestionId": 1, "Name": "C. 80m", "Answer": false },
            { "Id": 4, "QuestionId": 1, "Name": "D. 88m", "Answer": true },
            { "Id": 5, "QuestionId": 1, "Name": "E. 108m", "Answer": false }],
        "QuestionType": { "Id": 1, "Name": "Multiple Choice", "Active": true }
    },
    {
        "Id": 8,
        "Name": "Odiri bought 12 cartons of biscuits for N3,000.00. Find the cost of 7.",
        "QuestionTypeId": 1,
        "Options": [
            { "Id": 1, "QuestionId": 1, "Name": "A. ₦250.00", "Answer": false },
            { "Id": 2, "QuestionId": 1, "Name": "B. ₦442.00", "Answer": false },
            { "Id": 3, "QuestionId": 1, "Name": "C. ₦840.00", "Answer": false },
            { "Id": 4, "QuestionId": 1, "Name": "D. ₦1,750.00", "Answer": true },
            { "Id": 5, "QuestionId": 1, "Name": "E. ₦2,700.00", "Answer": false }],
        "QuestionType": { "Id": 1, "Name": "Multiple Choice", "Active": true }
    },

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

вот документ: проверяйте ответы благодаря переключателям и показывайте правильные / ложные благодаря ng-if вы должны проверить документы / выполнить учебное пособие, чтобы улучшить свои навыки. Может быть, следующийвремя отправить первую работу на платформу, например, stackblitz.

0 голосов
/ 04 марта 2019

пока у меня не получилось, пожалуйста, посмотрите код ручки

https://codepen.io/thefallen78/pen/ZPOgKL

    (function () {
 'use strict';

 angular.module("myapp",[]).controller("helloController", function($scope){
 

   $scope.quiz = {"questions": [{
        "Id": 5,
        "Name": "In a village, the number of people infected with HIV in 2001 was 100. In 2004, 250 people were infected. Find the ratio of those infected in 2001 to those infected in 2004.",
        "QuestionTypeId": 1,
        "Options": [
            { "Id": 1, "QuestionId": 1, "Name": "A. 1:5", "Answer": false },
            { "Id": 2, "QuestionId": 1, "Name": "B. 2:5", "Answer": true },
            { "Id": 3, "QuestionId": 1, "Name": "C. 3:5", "Answer": false },
            { "Id": 4, "QuestionId": 1, "Name": "D. 5:1", "Answer": false },
            { "Id": 5, "QuestionId": 1, "Name": "E. 5:2", "Answer": false }],
        "QuestionType": { "Id": 1, "Name": "Multiple Choice", "Active": true }
    },
    {
        "Id": 6,
        "Name": "The ratio of the length to the breadth of a room is 7:5. Find the length of the room if the breadth is 10m.",
        "QuestionTypeId": 1,
        "Options": [
            { "Id": 1, "QuestionId": 1, "Name": "A. 10m", "Answer": false },
            { "Id": 2, "QuestionId": 1, "Name": "B. 12m", "Answer": false },
            { "Id": 3, "QuestionId": 1, "Name": "C. 14m", "Answer": true },
            { "Id": 4, "QuestionId": 1, "Name": "D. 21m", "Answer": false },
            { "Id": 5, "QuestionId": 1, "Name": "E. 35m", "Answer": false }],
        "QuestionType": { "Id": 1, "Name": "Multiple Choice", "Active": true }
    },
    {
        "Id": 7,
        "Name": "Increase 80 by 10%.",
        "QuestionTypeId": 1,
        "Options": [
            { "Id": 1, "QuestionId": 1, "Name": "A. 8m", "Answer": false },
            { "Id": 2, "QuestionId": 1, "Name": "B. 10m", "Answer": false },
            { "Id": 3, "QuestionId": 1, "Name": "C. 80m", "Answer": false },
            { "Id": 4, "QuestionId": 1, "Name": "D. 88m", "Answer": true },
            { "Id": 5, "QuestionId": 1, "Name": "E. 108m", "Answer": false }],
        "QuestionType": { "Id": 1, "Name": "Multiple Choice", "Active": true }
    },
    {
        "Id": 8,
        "Name": "Odiri bought 12 cartons of biscuits for N3,000.00. Find the cost of 7.",
        "QuestionTypeId": 1,
        "Options": [
            { "Id": 1, "QuestionId": 1, "Name": "A. ₦250.00", "Answer": false },
            { "Id": 2, "QuestionId": 1, "Name": "B. ₦442.00", "Answer": false },
            { "Id": 3, "QuestionId": 1, "Name": "C. ₦840.00", "Answer": false },
            { "Id": 4, "QuestionId": 1, "Name": "D. ₦1,750.00", "Answer": true },
            { "Id": 5, "QuestionId": 1, "Name": "E. ₦2,700.00", "Answer": false }],
        "QuestionType": { "Id": 1, "Name": "Multiple Choice", "Active": true }
    }]}

});
  
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.11/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8">

  <title>the quiz</title>


  </head>

<body ng-app = "myapp">
  
  <div class = "container">
    <div class = "row" ng-controller = "helloController">
      <div class = "col-md-6 col-md-offset-3" style = "background-color:red;">
        <form action = "POST" ng-repeat = "(key,value) in quiz">
          <label>{{key}}</label>
          <div class = "form-group" ng-repeat = "item in value">   
            <label>{{item.Name}}</label>
          <select class = "form-control" >
            <option ng-repeat = "options in item.Options">{{options.Name}}</option>
            
            </select>
          </div>
        </form>
       
      </div>
    </div>
  </div>
</body>
</html>
0 голосов
/ 04 марта 2019

Вы хотите посмотреть на преобразование JSON в объект, используя JSON.parse()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

Оказавшись в объекте, вы можете затем пройти через него с помощью ng-repeat

https://docs.angularjs.org/api/ng/directive/ngRepeat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...