我的应用程序中有几条路线:
Sammy(function() {
this.get('#!foo', function(){
...
});
this.get('#!bar', function(){
...
});
... and so on...
this.get('#!special', function(){
...
})
}).run();
我有一个函数initialize();
,如果我遇到#!special
以外的任何路线,它与sammy无关。当然我可以复制我的每个路线,除了special
(这将起作用,但会有点愚蠢)。有没有办法实现这个目标?
P.S。或者如果你不知道如何做到这一点,有没有办法在每条路线上运行该功能?
答案 0 :(得分:2)
也许萨米的.before方法适合你?
以下是一些可以执行您想要的示例(未经测试的)代码:
this.before({except: {path: '#!special'}}, function() {
initialize();
});
.before()
方法基本上允许您在每个路由之前进行一些回调,但也允许您过滤掉某些路由(或执行相反的操作并将某些路由列入白名单)。