ndoojs支持自定义过滤器,对整个app生效。过滤器有before、after两种情形,过滤器支持only、except修饰。
1. 前置过滤器 beforeFilter
使用before声明,过滤器方法后缀为Filter。过滤器方法接受两个参数,actionName为当前action的名称,params为传递的参数。例:
before: {
filter: 'before'
},
beforeFilter: function(actionName, params) {
alert('before filter');
},
indexAction: function(params){
var $content;
$content = $('#content');
$content.html('module: home, action: indexAction');
}
同一修饰的多个过滤器以空格分隔。例:
before: {
filter: 'before1 before2 before3'
}
2. 后置过滤器 afterFilter
后置过滤器使用after声明,其它同前置过滤器。
3. only修饰
only表示过滤器只针对指定的action。
before: {
filter: 'before',
only: 'index'
},
beforeFilter: function() {
alert('before filter');
},
indexAction: function(params){
var $content;
$content = $('#content');
$content.html('module: home, action: indexAction');
}
多个修饰之间以空格分隔。例:
before: {
filter: 'before',
only: 'index product about contact'
}
4. except修饰
except表示过滤器针对在除except以外的action上。
4. 多个过滤器
ndoojs支持定义多个过滤器,以针对不同应用,将过滤器声明为数组即可。例:
before: [{
filter: 'before',
only: 'index'
}, {
filter: 'before1',
only: 'index about'
}]