2016-10-16 1 views
0

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

Моя логика:

forEach(q in questions){ //iterate all questions 
    if(q.getCategory() == 'A' && 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' && q.isCorrect()> 
       <div ng-repeat="q in questions"> 
        <div if(q.getCategory() =='B') class ="..">  
        </div> 
       </div> 
      </div> 
     </div> 
    </body> 
</html> 
+0

С вашей логикой что-то не так. 'Наконец, вы делаете операции по« всем вопросам с категорией B ». Тогда почему вы фильтруете 'вопросы с категориями A и Correct'. – ram1993

+0

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

+0

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

ответ

0

Попробуйте это, чтобы изменить 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> 
+0

Спасибо, что работает :) – Patrycja

0

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

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