Creating application with good separation-of-concern on top of emerging stardards with liaison

liaison is a data binding library that aims for emerging web standards compatibility. It provides a basis of building your application having separation-of-concern (MV* style) in mind.

Get started Learn more »

liaison has low-level observable objects that works as a shim of ES7 Object.observe() and Array.observe() with "value-holder" object approach. It also has following APIs, they aim to provide good compatibilities to APIs that are foreseed to be standards in each layer:

Declarative binding

Below example establishes binding between properties and DOM elements. The bindings in <input> below are two-way:

See here for more details on declarative binding, and here for advanced topics to work with <template>.

Imperative binding

Below example establishes binding between a property and DOM element. .set() API is used for trigger change notification for observers. The binding in <input> below is two-way:

See here for more details on imperative binding.

delite/deliteful widgets in template

You can have delite/deliteful widgets in <template> for data binding, once you import liaison/delite/templateBinderExtension module. It's two-way, too, meaning that in addition to data model update reflected to widget, update in widget is reflected back to data model. Here's an example:

delite widget with liaison's data binding features

You can also create delite widgets with liaison's two-way binding features by using liaison/delite/createRender module for widget's buildRendering() callback, for example:

liaison supports newer browsers with better web standards conformance. Current list of supported browsers are: