2016-08-09 3 views
1

Я пытаюсь добавить класс в несколько div, чтобы изменить его цвет фона.Добавить класс в несколько элементов в AngularJs

HTML:

<div class="span6"> 
    <div class="heading">Heading 1</div>      
</div> 

В настоящее время я использую это:

angular.element(document.querySelector('.heading')).addClass('color-change'); 

Моя проблема заключается в том, что ... есть несколько DIV с этим заголовком, но он меняет цвет только первый появление этого div. Как я могу получить его, чтобы все div с этим классом добавили стиль css.

ответ

3

document.querySelector выбирает первый элемент, соответствующий запросу. querySelectorAll должен достичь желаемого результата.

JSFiddle: https://jsfiddle.net/usw4cozt/

+1

Хотя это ответ правильный, это не так, как вы могли бы сделать он в Angular – tdhulster

+0

Согласен, я предпочел бы использовать 'ng-class' или' class = {{expression}} ', но я не буду винить кого-либо за использование родной JS, особенно если у них есть причина, по которой они не хотят, чтобы этот элемент так сильно привязана к c ontroller (который они могут или нет, idk). – MPawlak

0

Используйте нг-класс вместо класса и присвоить Classname к модели:

<h1 ng-class='mainCtrl.selectedTheme'>Title 2</h1> 

angular.module('demoApp', []) 
    .controller('MainController', MainController) 

function MainController() { 
    this.selectedTheme = 'blue'; 
} 

https://jsfiddle.net/4tuavhL2/

 Смежные вопросы

  • Нет связанных вопросов^_^