Check this good answer on template syntax.
Also you will retrieve more details in Angular official docs
With your example, you could simply do :
<some-element class="first second">...</some-element>
Because in this example, you don't use the features of ngClass
directive. Just set regular class
via html attribute in this case.
But to invoke an Angular directive you should use square braces.
Then in this case :
<some-element [ngClass]="{'first': isFirst, 'second': isSecond}"></someElement>
NgClass
directive will add first
class name to some-element
if local property isFirst
is true
, and same thing for second
.
Each directive has a selector
to be invoked by Angular template compiler.
In the case of NgClass
, the selector is [ngClass]
.
Excerpt of source code :
@Directive({selector: '[ngClass]'})
export class NgClass implements DoCheck {
...
Check for more details these resources :
- Angular directives
- Angular code for NgClass