Как сделать активными предметные базы на двух массивах в угловых? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть два массива

Исходный массив - $ scope.mentors = ["000", "001", "002", "003", "004", "005", "006","007", "008", "009", "010", "011", "012", "013", "014"];

И соответствующие элементы первого массива - $ scope.initialSelected= ["005", "009", "013", "014"];

Мне нужно визуализировать все $ scope.mentors и элементы подсветки из второго массива, используя класс currentAcc.Также мне нужно переключать элементы, щелкая и создавая новый массив на основе подсвечивающих элементов.

Сейчас у меня есть ошибка при попытке щелкнуть инициализированные подсвеченные элементы. Может кто-нибудь помочь мне с этим пожалуйста?

Вот пример моего приложения

<div ng-controller="MainCtrl">
  <ul>
    <li ng-repeat="mentor in mentors">
       <span ng-click="toggle = !toggle;" ng-class="{'currentAcc': ifActiveAcc(toggle, '{{mentor}}' )}">{{mentor}}
       </span>
    </li>
  </ul>
</div>

function MainCtrl($scope) {
  $scope.mentors = ["000", "001", "002", "003", "004", "005", "006", "007", "008", "009", "010", "011", "012", "013", "014"];

  $scope.initialSelected = ["005", "009",  "013", "014"];

  $scope.ifActiveAcc = function(flag, num){
      var p = $scope.initialSelected.includes(num);
      if(flag == undefined) {
         if (p){
           return true;
         }
       }
       else if(flag !== 'undefined'){
        if (flag && p){
          return true;
        }
        else if(flag && !p){
          return true;
        }
        else if(!flag && p){
          return false;
        }
        else{
          return false;
        }
       }             
  } 
}

agnular 1.6.9

1 Ответ

0 голосов
/ 11 декабря 2018

С добавлением дополнительного поля isActive функции вообще не нужны.Вы можете использовать простые прямые оценки.

<span ng-click="mentor.isActive = !mentor.isActive" 
      ng-class="{'currentAcc': mentor.isActive}">{{mentor.name}}

см. Эту скрипку: http://jsfiddle.net/c84tf7Lu/

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