Я перебираю список элементов и устанавливаю флажок. Я хочу иметь класс, когда он отмечен, и другой (или его отсутствие), если он не отмечен.
В настоящее время в $scope есть массив, который отслеживает, проверен элемент или нет, поэтому я пытался поместить это условное выражение в ng-scope
, но синтаксис кажется проблемой:
В этом примере класс css .test
будет присутствовать, если существует uniqJoke, что, конечно, всегда происходит, потому что мы повторяем их:
<div class="col-md-6" ng-repeat="uniqJoke in uniqJokeTypes">
Each Joke Type
<div class="type-filter-button type-filter-button-{{uniqJoke}}" ng-class="{test: uniqJoke}" ng-click="jokeTypeClick(uniqJoke)">
<label ng-bind="uniqJoke"></label>
<!-- <input type="checkbox" ng-model="JokeTypeFilter[uniqJoke]" hidden/> -->
<input type="checkbox" ng-model="uniqJoke" hidden/>
</div>
</div>
Допустим, есть несколько типов {funny
, pirate
, knock-knock
, ...}. Но как бы я добавил класс css динамически, основываясь на том, существует ли шутка в переменной ассоциативного массива JokeTypeFilter{ funny:true, pirate:true, knock-knock:false }
Следующее не работает (синтаксическая ошибка):
ng-class="{ {{uniqJoke}}: JokeTypeFilter[uniqJoke] }"
и это работает, потому что он вставит класс uniqJoke
, если условие совпало:
ng-class="{uniqJoke: JokeTypeFilter[uniqJoke]}"
но я бы хотел, чтобы в div было .pirate
, если JokeTypeFilter[pirate] == true
.