ModelFlow->
ModelFlow is a JavaScript evented state machine written to run both in node.js and the browser.
Design Goals
- Easily create state machine on top of a existing data model(s).
- Define states based on the data models attribute values.
- Ability to listen for state changes and run callbacks.
- Provide a mechanism to optionally enforce linear paths from state to state. This may be used an alternative to flow control libraries.
Installation / Basic Usage
ModelFlow depends on Underscore and is built as a complement to Backbone.
On the Server
Install the library using npm or add it to your package.json
file as a dependancy. Instances of ModelFlow are technically Backbone Models, however the module can be used completely standalone.
$npm install modelflow
Define a StateModel class, create an instance of it.
var ModelFlow = ;var CustomFlow = ModelFlowStateModel;var flow = ;
On the Client
Just like server, however ModelFlow will be pushed on the window as a global.
Moar Usage
Bind callbacks on state changes
var CustomFlow = ModelFlowStateModel;var flow = ;flow;flow; //this does nothingflow; //'inited' is logged to console