首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

senca touch 中的前前后后置过滤器

2012-09-16 
senca touch 中的前后置过滤器今天偶然看到老外提到sencha touch 中的controller,并提到了前后置过滤器,其

senca touch 中的前后置过滤器
今天偶然看到老外提到sencha touch 中的controller,并提到了
前后置过滤器,其实感觉是利用了ror中的BeforeFilters,或者
有点象JAVA AOP中的前后置过滤器了,例子如下:

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, 这个是重点和亮点

热点排行