Ember Conditional Transitions
by alexchetv
HTML
<script src="http://cloud.github.com/downloads/wycats/handlebars.js/handlebars-1.0.0.beta.6.js"></script>
<script src="http://cloud.github.com/downloads/emberjs/ember.js/ember-latest.js"></script>
<script type="text/x-handlebars">
</script>
JavaScript
var transitionAfterConfirmation = function(target){
var defaultEvent = Ember.Route.transitionTo(target),
event = function(stateManager, context){
if( confirm("Really go?")){
defaultEvent(stateManager,context);
}
};
event.transitionTarget = target;
return event;
};
App = Ember.Application.create({
Router: Ember.Router.extend({
root: Ember.Route.extend({
index: Ember.Route.extend({
route: '/',
redirectsTo: 'stateA'
}),
gotoA: transitionAfterConfirmation('stateA'),
gotoB: transitionAfterConfirmation('stateB'),
stateA: Ember.Route.extend({
route: '/a',
enter: function(){ alert('in A'); }
}),
stateB: Ember.Route.extend({
route: '/b',
enter: function(){ alert('in B'); }
})
})
})
});
App.ApplicationController = Ember.Controller;
App.ApplicationView = Ember.View;
$( function(){
App.initialize();
});
setTimeout( function(){
App.get('router').send('gotoB');
}, 500);