【问题标题】:How can I execute a particular function on every route except one in sammy.js我如何在每条路线上执行特定功能,除了 sammy.js 中的一个
【发布时间】:2014-03-08 11:35:05
【问题描述】:

我的应用程序中的路由很少:

Sammy(function() {
    this.get('#!foo', function(){
        ...
    });

    this.get('#!bar', function(){
        ...
    });

    ... and so on...

    this.get('#!special', function(){
        ...
    })
}).run();

而且我有一个函数initialize();,如果我点击除#!special 之外的任何路线,它与sammy 没有任何联系。当然,除了special(它会起作用,但会有点愚蠢),我可以复制我的每条路线。有没有办法做到这一点?

附:或者如果您不知道如何执行此操作,有没有办法在每个路由命中时运行该函数?

【问题讨论】:

    标签: routing sammy.js


    【解决方案1】:

    也许 Sammy 的 .before 方法对您有用?

    这里有一些示例(未经测试)代码,可以做你想做的事:

    this.before({except: {path: '#!special'}}, function() {
        initialize();
    });
    

    .before() 方法基本上可以让你在每条路由之前做一些回调,但也可以让你过滤掉某些路由(或者相反,将某些路由加入白名单)。

    【讨论】:

      猜你喜欢
      • 2023-01-13
      • 2015-03-28
      • 2017-04-12
      • 2015-10-19
      • 2011-06-19
      • 1970-01-01
      • 2014-05-03
      • 2017-01-10
      • 1970-01-01
      相关资源
      最近更新 更多