senca touch 中的前后置过滤器
今天偶然看到老外提到senchatouch中的controller,并提到了
前后置过滤器,其实感觉是利用了ror中的BeforeFilters,或者
有点象JAVAAOP中的前后置过滤器了,例子如下:
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; });
以上是注册。
比如一个校验用户是否登录的controller中:
Ext.regApplication({ // code, code, code... loggedIn: readCookie('user_credentials') || false, requireUser: function() { if(app.loggedIn) return true; app.flash.warning = 'Please login to continue.'; Ext.redirect('login'); return false; }, flash: { notice: '', warning: '' } });
假设在每个页中都要校验,所以在控制器前先执行app.requireUser,
如下:
Ext.regController('accounts', { beforeFilter: app.requireUser, model: 'Account', index: function(options) { app.views.viewport.setActiveItem( app.views.accountsList, options.animation ); }, // other actions here... });
看到不?beforeFilter:app.requireUser,这个是重点和亮点
相关推荐
liuxudong00 2020-11-19
wwzaqw 2020-11-11
lihaoxiang 2020-11-05
CrossingX 2020-11-04
xuegangic 2020-10-17
86417413 2020-11-25
83206733 2020-11-19
86276537 2020-11-19
83266337 2020-11-19
86256434 2020-11-17
zhouboxiao 2020-11-16
rise 2020-11-22
sssdssxss 2020-11-20
windle 2020-11-10
孙雪峰 2020-10-30
85477104 2020-11-17
xfcyhades 2020-11-20
cheidou 2020-11-19