BackgroundBehavior Classes

The Classes behavior can be used to automatically add classes to anelement or remove them based on some truth value. The value shouldbe an expression that results to an object where the keys are therelevant class names and their values any valid Expression.

Example

This simple example adds the bold class to an h1 element whenever thevalue of isBold in the local scope is truthy.

<h1 classes="{bold: isBold}">Mahalo</h1>
alias

{ default } from mahalo/behaviors/classes

Hierarchy

Index

Constructors

Properties

Methods

Object literals

Constructors

constructor

  • new Classes(value: string): Classes
  • To initialize a behavior its dependecies have to be injected first,then the binding to its value has to be processed and finally thedefined bindings have to be set up.

    This has to be done for all definitions along the prototype chain to makesure inherited features don't break.

    Parameters
    • value: string

      The actual string literal of the attribute used for the current behavior instance.

    Returns Classes

Properties

element

element:Element

The element the behavior was attached to.

Static bindings

bindings:Object

This static property lets you define listeners that will be executed whenproperties of the behavior change.

It should be a map where the keys are paths that should be watched on the behavior instanceand the values are names of methods that will be invoked on it when the valueat a path changes.

Example

The following example shows a behavior that reacts to a change in the height ofthe defining element.

export default class MyBehavior extends Behavior {    static inject: {element: Element};    static bindings = {        'element.clientHeight': 'heightChange'    };    width: number;    heightChange(height: number) {        this.width = height * 2;    }}

Static update

update:string = "update"

Methods

remove

  • remove(): void
  • Returns void

update

  • update(classes: Object): void
  • Updates the class list of the element.

    Parameters
    • classes: Object
    Returns void

Object literals

Static inject

inject:object

element

element:Element = Element