【问题标题】:Catch-all or error routes in Sammy.jsSammy.js 中的包罗万象或错误路由
【发布时间】:2010-12-20 22:32:19
【问题描述】:

是否可以在 Sammy.js 中定义包罗万象的路由或错误路由?我知道我可以绑定到“错误”,但如果没有路由匹配似乎不会被触发。

谢谢!

【问题讨论】:

    标签: javascript sammy.js


    【解决方案1】:

    您应该覆盖notFound 函数。

    像这样:

    var app = $.sammy('#app', function() {
      this.notFound = function(){
        // do something
      }
    });
    

    这是 Sammy 的作者recommended

    【讨论】:

    • 这适用于实现 404 Not Found 事件,但作为一个包罗万象的路由,它不太实用,因为this 将是Application,而不是EventContext。所以不会有像pathparams这样的属性。
    【解决方案2】:

    根据documentation for Sammy routes

    路径可以定义为字符串或 正则表达式。

    因此,应该可以在路线的末尾创建这样的路线,这是一个包罗万象的路线:

    get(/.*/, function() { 
      ...
    });
    

    【讨论】:

    • 次要 - 注意缺少引号,这是一个文字正则表达式。 '/.*/' 与 /.*/ 完全不同
    • 这种方法的一个问题是您的路线甚至会捕捉到会离开您的页面的链接。你可能不希望这样。
    • 在我使用单页应用程序进行的测试中,这有效并且在导航到另一个页面时没有触发。
    猜你喜欢
    • 2016-08-20
    • 2011-04-02
    • 2011-10-13
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2016-02-22
    • 2011-04-27
    相关资源
    最近更新 更多