A plugin for the Aurelia platform providing asynchronous binding support
MIT License
This library is an experimental plugin for the Aurelia platform enabling asynchronous data-binding. The current version supports binding to Rx Observables and Promises. Other async patterns are planned for future releases.
Binding to an Rx observable:
<template>
${mouse..value.clientX}, ${mouse..value.clientY}
</template>
import Rx from 'rx';
export class App {
mouse = Rx.Observable.fromEvent(document, 'mousemove');
}
Binding to a promised value:
Hello ${worldPromise..value}
Binding to a promise's state:
<span show.bind="worldPromise..ready">Hello ${worldPromise..value}</span>
Binding to promised objects:
<div if.bind="orderPromise..ready">
${orderPromise..value.orderDate | dateFormat:'MM/dd/yyyy'}
${orderPromise..value.shipping}
${orderPromise..value.total}
</div>
Binding to methods that return promises:
The foo is ${getFoo()..ready ? getFoo()..value : '(resolving...)'}
Note: the binding system will invoke the getFoo
function multiple times. It should return the same promise instance.
jspm install aurelia-async
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging()
.plugin('aurelia-async'); // install the plugin
aurelia.start().then(a => a.setRoot());
}
To keep up to date on Aurelia, please visit and subscribe to the official blog. If you have questions, we invite you to join us on Gitter. If you would like to have deeper insight into our development process, please install the ZenHub Chrome Extension and visit any of our repository's boards. You can get an overview of all Aurelia work by visiting the framework board.
This library can be used in the browser only.
To build the code, follow these steps.
npm install
npm install -g gulp
gulp build
You will find the compiled code in the dist
folder, available in three module formats: AMD, CommonJS and ES6.
See gulpfile.js
for other tasks related to generating the docs and linting.
To run the unit tests, first ensure that you have followed the steps above in order to install all dependencies and successfully build the library. Once you have done that, proceed with these additional steps:
npm install -g karma-cli
npm install -g jspm
jspm install
karma start
To test in Internet Explorer use this command:
karma start --browsers IE