【问题标题】:How to ignore trailing slash in marionette routes?如何忽略木偶路线中的斜杠?
【发布时间】:2016-07-12 18:39:34
【问题描述】:

我在 Marionettejs 中定义路由如下:

var Mn = require('backbone.marionette');

var Router = Mn.AppRouter.extend({
    routes: {
        '': 'default',
        'login': 'login',     // http://localhost:8080/#/login
        'signup': 'signup'    // http://localhost:8080/#/signup
    }, 
    initialize: function () {
        var initData = this.getOption('keyInOptions');
    },
    // below are route functions
    default: function () {
        console.log('this is default route');
    }, 
    login: function () {
        console.log('this is login route');
    },
    signup: function () {
        console.log('this is signup route');
    }
});

module.exports = Router;

然后在浏览器中:

http://localhost:8080/#/login

成功触发登录路由,但是

http://localhost:8080/#/login/

(末尾加一个正斜杠)不会触发登录路由功能。我知道我可以定义另一个路由条目:

...
'login': 'login',
'login/': 'login',
...

来解决这个问题,但是这个解决方案会使路由器定义中的条目加倍。有没有更好的方法来为loginlogin/ 触发相同的路由处理程序?

【问题讨论】:

    标签: javascript backbone.js marionette


    【解决方案1】:

    您是否尝试过用括号括起斜杠?像下面这样:

    routes: {
        'login(/)': 'login'
    }
    

    来自主干documentation

    路径的一部分可以通过用括号括起来使其成为可选的 (/:可选)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 2019-06-25
      • 1970-01-01
      • 2018-11-17
      • 1970-01-01
      • 2018-10-28
      相关资源
      最近更新 更多