#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>