BeforeFilters in RoR are a great way to manage controller accesses or do execute any other specific controller action triggers.
Here is a simple way of mimicking this great RoR feature on Sencha Touch MVC.
Create a file named `app/controllers/Controllers.js` with the following content:
Ext.Dispatcher.on('before-dispatch', function(interaction) {
if(Ext.isFunction(interaction.controller.beforeFilter)) {
return interaction.controller.beforeFilter.call();
};
return true;
});
Ext.Dispatcher.on('dispatch', function(interaction) {
if(Ext.isFunction(interaction.controller.afterFilter)) {
return interaction.controller.afterFilter.call();
};
return true;
});
Include this in your HTML document.
Now, you can add your beforeFilter action to all your controllers like following:
Ext.regController('TestController', {
beforeFilter: function() {
console.log('Hi! I am a beforeFilter!');
},
afterFilter: function() {
console.log('Hi! I am an afterFilter!');
},
index: function() {
App.views.viewport.reveal('testView');
}
});
Reference: Adding Callbacks to your Sencha Touch Controllers