【问题标题】:Sammy.js trailing slashesSammy.js 尾部斜杠
【发布时间】:2013-02-28 01:49:37
【问题描述】:

我有这条路线:

this.get('/#week/:week', function() {...})

适用于/#week/4,但不适用于/#week/4/

关于如何在 Sammy.js 中保留斜杠可选的任何好主意? 我现在正在尝试接近这个的正则表达式:

this.get(/#week\/:week\/?/, function() {...})

但没有任何成功。

谢谢!

【问题讨论】:

  • 你找到解决办法了吗?
  • 这看起来像是 stackoverflow.com/questions/12877577/… 的副本,但我还不能将其标记为重复,因为另一个问题也没有被接受的答案。
  • 对不起,太久没问这个了。我无法验证答案是否有效,因为我已经有 2 年多没有碰过 Sammy 了……那你通常会做什么?接受答案,因为它似乎合法还是什么都不做?

标签: sammy.js


【解决方案1】:

我遇到了同样的问题。可能为时已晚,但请尝试将 :week 替换为以下内容:

([^\/]*) 

然后使用

this.params['splat']

http://sammyjs.org/docs/routes,搜索正则表达式。所以你的路线是:

this.get(/#week\/([^\/]*)\/?/, function() {
console.log(this.params['splat']);
})

不确定如果您有多个 id,您将如何管理...

【讨论】:

  • 别在意我的最后评论。 this.params['splat'] 是一个数组,所以我想你可以捕获多个 id。不过我还没试过。
【解决方案2】:

最好的解决方案是添加/?,使您的

route:this.get('/#week/:week/?', function() {...})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 2015-06-20
    • 2018-11-18
    相关资源
    最近更新 更多