Maslosoft Binder Documentation
Knockout JS tracker and binding handlers with coffee and sugar
CSS Classes
The CSS classes binding allows You to apply array of classes to element.
When class is removed from observable array, it will be removed
from item too. Except array, class list can be provided as
space separated class names list, just like on class
attribute.
This binding will not change existing classes or those added by other bindings. Will change existing classes only if provided on classes list observable value.
To keep track which class to remove, this binding will store added
classes list in data-css-classes working element attribute.
Live Example
| Example | Class Name | Enabled | Actions |
|---|---|---|---|
|
Element
|
btn-default
|
|
|
|
Element
|
btn-success
|
|
|
|
Element
|
big-border
|
|
|
|
Element
|
shadowed
|
|
|
|
Element
|
outlined
|
|
Element below contains btn and btn-success CSS classes.
The btn class will be always present, however btn-success
might be disabled, because it is toggleable
as it is present in binder.model.decorate.classes array and binder.model.decorate.classList list.
Relevant code used in examples:
<div data-bind="cssClasses: binder.model.decorate.classes" class="btn btn-success">
Styled with array
</div>
<div data-bind="cssClasses: binder.model.decorate.classList" class="btn btn-success">
Styled classes list
</div>
<script>
window.onload = (function () {
var classes = ["btn-default","btn-success","big-border","shadowed"];
var classList = "btn-default btn-success big-border shadowed";
binder.model.decorate = new Maslosoft.Koe.CssClasses({
classes: classes,
classList: classList
});
ko.applyBindings({model: binder.model}, document.getElementById('ko-binder'));
});
</script>