A simple event oriented state machine.
- 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.
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 = require'modelflow';var CustomFlow = ModelFlowStateModelextendstates :state1 : foo : 1staet2 : foo : 2;var flow = ;
Just like server, however ModelFlow will be pushed on the window as a global.
###Bind callbacks on state changes
var CustomFlow = ModelFlowStateModelextendstates :init : foo : 1;var flow = ;flowbind'state:->init'console.log'inited';;flowset foo : 0 ; //this does nothingflowset foo : 1 ; //'inited' is logged to console