Skip to content

Instantly share code, notes, and snippets.

@troygoode
Created April 19, 2012 13:58
Show Gist options
  • Save troygoode/2421138 to your computer and use it in GitHub Desktop.
Save troygoode/2421138 to your computer and use it in GitHub Desktop.
stativus_bug.js
var statechart;
if(require) // I'm using node to make this easier to test
statechart = require('./stativus').createStatechart();
else
statechart = Stativus.createStatechart();
////////////////////////////////////////////
// MY STATES:
// application
// - page1
// - page2
// - page3 (#nav and #content are concurrent)
// - page3#nav
// - page3#nav#fromPage1
// - page3#nav#fromPage2
// - page3#content
////////////////////////////////////////////
statechart.addState('application', {
initialSubstate: 'page1'
});
statechart.addState('page1', {
parentState: 'application'
, lookAtPage3: function(){ this.goToState('page3#nav#fromPage1'); }
})
statechart.addState('page2', {
parentState: 'application'
, lookAtPage3: function(){ this.goToState('page3#nav#fromPage2'); }
})
statechart.addState('page3', {
parentState: 'application'
, substatesAreConcurrent: true
, states: [
{
name: 'page3#nav'
, states:[
{
name: 'page3#nav#fromPage1'
, back: function(){ this.goToState('page1'); }
},
{
name: 'page3#nav#fromPage2'
, back: function(){ this.goToState('page2'); }
}
]
},
{
name: 'page3#content'
}
]
});
statechart.initStates({'default': 'application'});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment