Как извлечь данные из JSON с помощью Angularjs?

0

Здесь, в {{msg}}, я могу отображать все данные jason с помощью Selected: true или false.. но мне нужно, чтобы я не хотел отображать все данные, когда я нажимаю кнопку Save, я хочу отображать questions.id, option.id и выбрано: true или false под текстовым полем

мы получим все json-данные из $ scope.questions.

home.html

    <div ng-repeat="question in filteredQuestions">
            <div class="label label-warning">Question {{currentPage}} of {{totalItems}}.</div>
            <div class="row">
                <div class="row">
                    <h3>{{currentPage}}. <span ng-bind-html="question.Name"></span></h3>
                </div>
            </div>
            <div class="row text-left options">
                <div class="col-md-6" ng-repeat="option in question.Options" style="float:right;">
                    <div class="option">
                        <label class="" for="{{option.Id}}">
                           <h4> <input id="{{option.Id}}" type="checkbox" ng-model="option.Selected" ng-change="onSelect(question, option);" />
                            {{option.Name}}</h4>
                        </label>
                    </div>
                </div>
                </div>

            <div class="center"><button ng-click="save()">Save</button></div>
            <div class="center"><textarea  rows="5" cols="50">{{msg}}</textarea></div>
        </div>

controllers.js

var HomeController = function ($scope, $http, helper) {

    /*$scope.names = response.data;

    $scope.detectChange=function(){
        $scope.msg = 'Data sent: '+ JSON.stringify($scope.filteredQuestions);
    }*/
    $scope.save = function() {
        $scope.msg = 'Data sent: '+ JSON.stringify($scope.questions);
    }
 $scope.quizName = 'data/csharp.js';
 $scope.loadQuiz = function (file) {
        $http.get(file)
         .then(function (res) {
             $scope.quiz = res.data.quiz;
             $scope.config = helper.extend({}, $scope.defaultConfig, res.data.config);
             $scope.questions = $scope.config.shuffleQuestions ? helper.shuffle(res.data.questions) : res.data.questions;
             $scope.totalItems = $scope.questions.length;
             $scope.itemsPerPage = $scope.config.pageSize;
             $scope.currentPage = 1;
             $scope.mode = 'quiz';

             $scope.$watch('currentPage + itemsPerPage', function () {
                 var begin = (($scope.currentPage - 1) * $scope.itemsPerPage),
                   end = begin + $scope.itemsPerPage;

                 $scope.filteredQuestions = $scope.questions.slice(begin, end);
             });
         });
    }
    $scope.loadQuiz($scope.quizName);
}

HomeController.$inject = ['$scope', '$http', 'helperService'];

csharp.js

{
    "quiz": {
        "Id": 2,
        "name": "C# and .Net Framework",
        "description": "C# and .Net Quiz (contains C#, .Net Framework, Linq, etc.)",
        "paragraph": "In 2015 Microsoft released ASP.NET 5.ASP.NET 5 is a significant redesign of ASP.NET.ASP.NET, MVC, and Web Pages are now merged into a single framework named MVC 6.It includes the following features:Linux support OSX support Node.js supportA ngularJS supportTag ,HelpersView, ComponentsWeb ,APIGruntJS ,supportBower, supportNo ,Visual BasicNo Web Forms"
    },
    "config": {
        "shuffleQuestions": true,
        "showPager": false,
        "allowBack": true,
        "autoMove": false
    },
    "questions": [{
        "Id": 1010,
        "Name": "Which of the following assemblies can be stored in Global Assembly Cache?",
        "QuestionTypeId": 1,
        "Options": [{
            "Id": 1055,
            "QuestionId": 1010,
            "Name": "Private Assemblies"
        }, {
            "Id": 1056,
            "QuestionId": 1010,
            "Name": "Friend Assemblies"
        }, {
            "Id": 1057,
            "QuestionId": 1010,
            "Name": "Public Assemblies"
        }, {
            "Id": 1058,
            "QuestionId": 1010,
            "Name": "Shared Assemblies"
        }]
    }, {
        "Id": 1019,
        "Name": "Which of the following does NOT represent Integer?",
        "QuestionTypeId": 1,
        "Options": [{
            "Id": 1055,
            "QuestionId": 1010,
            "Name": "Char"
        }, {
            "Id": 1056,
            "QuestionId": 1010,
            "Name": "Byte"
        }, {
            "Id": 1057,
            "QuestionId": 1010,
            "Name": "Short"
        }, {
            "Id": 1058,
            "QuestionId": 1010,
            "Name": "Long"
        }]

    }]
}

Это мой ответ выше кода... Отображение всех данных

Data sent: [{"Id":1013,"Name":"Which of the following is NOT an Arithmetic operator in C#.NET?","QuestionTypeId":1,"Options":[{"Id":1055,"QuestionId":1010,"Name":"** (Double Star)","$$hashKey":"00X","Selected":false},{"Id":1057,"QuestionId":1010,"Name":"+ (Plus)","$$hashKey":"00Y","Selected":false},
"$$hashKey":"00C"}]

но я хочу отобразить все идентификатор вопроса и соответствующий идентификатор опции, и если он выбран, выбрано: true в противном случае false в формате вышеприведенного вывода

  • 0
    Мне очень трудно понять, чего вы хотите достичь, не могли бы вы объяснить, что вы хотите, чтобы ваша заявка сделала?
  • 0
    @Gianmarco, когда я нажимаю кнопку Сохранить, я хочу отобразить questions.id, option.id и выбрал: true или false под текстовым полем.
Показать ещё 11 комментариев
Теги:

1 ответ

0

Если вы хотите изменить то, что представлено пользователю после сохранения, вы должны изменить эту функцию:

$scope.save = function() {
    $scope.msg = 'Data sent: '+ JSON.stringify($scope.questions);
}

к чему-то вроде:

$scope.save = function() {
    $scope.msg = 'Question IDs:';
    $scope.questions.forEach(function(el){
        $scope.msg += el.Id + ',';
    }
}

Это, например, объединит все идентификаторы массива, которые будут содержать все вопросы.

Чтобы добавить параметры и выбор, вам нужно ng-моделировать значение для некоторой переменной, которую вы будете использовать внутри вашего контроллера.

Я думаю, вы должны проверить небольшой справочник по привязке двухсторонней привязки angularjs

Ещё вопросы

Сообщество Overcoder
Наверх
Меню