Как использовать вложенный ng-repeat, чтобы разрешить доступ ко второму списку только при успешном ответе на первый?

#javascript #angularjs #angularjs-ng-repeat

#javascript #angularjs #angularjs-ng-repeat

Вопрос:

Я новичок в AngularJS, и мне нужно разработать вопросник. Вначале у нас есть доступ только к вопросу с категорией A, другие доступны только для чтения. Чтобы получить доступ к вопросу с категорией B, нам нужно дать правильный ответ на вопрос с категорией A и т.д. Порядок может измениться: это означает, что вопросы с категорией B могут быть перед A по разным причинам.

Моя логика:

 forEach(q in questions){ //iterate all questions
    if(q.getCategory() == 'A' amp;amp; q.isCorrect()){ // I have a function which check if  question with category is 'A' and if answer of question with category'A' is correct
        for(q in questions){ //as the order of questions can change I need iterate again all question to find question with category 'B' 
            if(q.getCategory() =='B'){
                do something  //I want to also change css 
            }
        }
    }
};
 

Как мы можем добиться этого с помощью AngularJS? Должен ли я делать это с учетом или, может быть, мне следует создать директиву?

 <!DOCTYPE html>
<html ng-app="myModule">
    <head>
        <title></title>
        <script src="Scripts/angular.js"></script>
        <script src="Scripts/MyModuleScript.js"></script>
    </head>
    <body  ng-controller="myController">
        <div ng-repeat="q in questions">
            <span> {{q.content}}</span>
            <div ng-if=q.getCategory() == 'A' amp;amp; q.isCorrect()>
                <div ng-repeat="q in questions">
                    <div if(q.getCategory() =='B') class ="..">     
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>
 

Комментарии:

1. С вашей логикой что-то не так. Finally вы выполняете операции над all questions with category B . Тогда почему вы фильтруете questions with category A and Correct .

2. Чтобы получить доступ к вопросу с категорией B, сначала мне нужно сначала проверить, правильный ли ответ на вопрос с категорией A.

3. Благодарственные письма и заявления об оценке помощи рассматриваются как шум и не обязательно должны присутствовать в вопросе. Не добавляйте имена тегов в заголовок, поскольку они уже присутствуют как часть тегов. Я изменил название, чтобы лучше объяснить вашу проблему. Я также исправил несколько ошибок опечаток и форматирования.

Ответ №1:

Попробуйте это, чтобы изменить css, который вы можете использовать ng-class или ng-style .

 <div ng-repeat="a in questions | filter:{'category':'A', 'isCorrect': true}">
  <div ng-repeat="b in questions | filter:{'category':'B'}">{{b}}</div>
</div>
 

Ответ №2:

Как сказал рам, он дал вам идею. Но лучше использовать внутренний ng-repeat следующим образом.

  <div ng-repeat="b in a| filter:{'category':'B'}">{{b}}</div>