angular-bem
A set of directives to simplify your workflow with BEM-markup in Angular (v2+) applications.
Changelog
2.1.0
- Support for Angular v6+
- Refactoring
2.0.0
- Initial release for Angular v2+
Install
$ npm install angular-bem
Example
Import this module to your app:
; @ {}
Now anywhere in your app you can use following syntax:
or
Instead of true
you can use any property from the component. Value true
will add mod to the block (or elem) and false
will remove it.
As a result of module's work the following markup may be produced:
If you use string
or number
as a value then this value will be used as addition for the mod class like my-block__my-element--mod-name-value
.
Configuration
You can change module behaviour with BemConfig:
; BemModule; // method returns BemModule
It is recommended to set ignoreValues
to true
but it is set to false
by default to support traditional bem-syntax.
Need to know
- These directives don't affect scope or other directives. So you can use them at ease wherever you want.
- You can only specify one element or block on single node. This limitation greatly simplify code of module and your app.
- There is no way to create an element of parent block inside nested block. It's not a component-way. So please avoid it.