Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    backbone-fsmpublic

    Backbone-FSM Build Status

    Finite-State Machine for Backbone views and models. Browser and Node.js compatible.

    Installation

    Bower

    bower install backbone-fsm

    Old school

    Include lib/backbone-fsm.js into your page.

    Node.js

    npm install backbone-fsm

    Usage

    Initialization

    FSM comes with mixin method. You have to extend this during initialization.

    var Foo = Backbone.View.extend({
        initialize: function () {
            FSM.mixin(this);
        }
    });

    Transitions

    You can define transitions and defaultState:

    var Foo = Backbone.View.extend({
        initialize: function () {
            FSM.mixin(this);
        },
     
        defaultState: 'firstState',
     
        transitions: {
            'transitionName': {
                from: 'firstState',
                to: 'secondState'
            }
        },
     
        onTransitionName: function (callback) {
            callback();
        }
    });

    To make a transition run transitionTo("secondState"). During transition:

    1. transition:start event is emited
    2. onTransitionName callback is called (if defined).
    3. transition:stop event is emited

    Example

    Backbone-FSM live example: http://jsfiddle.net/fragphace/Zc6Gx/

    Tests

    For server-side tests:

    npm test

    Browser tests can be found in test/browser.html. Tested under:

    • IE 7+
    • FF 15+
    • Chrome 22+

    Development

    • Generate JS files - make coffee
    • Watch mode - make watch

    Keywords

    none

    install

    npm i backbone-fsm

    Downloadsweekly downloads

    0

    version

    0.0.1

    license

    none

    repository

    github.com

    last publish

    collaborators

    • avatar