View source Improve this doc

ngClass
directive in module ng

Description

The ngClass directive allows you to dynamically set CSS classes on an HTML element by databinding an expression that represents all classes to be added.

The directive won't add duplicate classes if a particular class was already set.

When the expression changes, the previously added classes are removed and only then the new classes are added.

Usage

as attribute
<ANY ng-class="{expression}">
   ...
</ANY>
as class
<ANY class="ng-class: {expression};">
   ...
</ANY>

Animations

  • add - happens just before the class is applied to the element
  • remove - happens just before the class is removed from the element
Click here to learn more about the steps involved in the animation.

Parameters

ParamTypeDetails
ngClassexpression

Expression to eval. The result of the evaluation can be a string representing space delimited class names, an array, or a map of class names to boolean values. In the case of a map, the names of the properties whose values are truthy will be added as css classes to the element.

Example

Example that demonstrates basic bindings via ngClass directive.

Source







Demo

Animations

The example below demonstrates how to perform animations using ngClass.

Source







Demo

ngClass and pre-existing CSS3 Transitions/Animations

The ngClass directive still supports CSS3 Transitions/Animations even if they do not follow the ngAnimate CSS naming structure. Upon animation ngAnimate will apply supplementary CSS classes to track the start and end of an animation, but this will not hinder any pre-existing CSS transitions already on the element. To get an idea of what happens during a class-based animation, be sure to view the step by step details of $animate.addClass and $animate.removeClass.