gpt4 book ai didi

javascript - 如何忽略 Marionette route 的尾部斜杠?

转载 作者:行者123 更新时间:2023-11-30 11:54:47 29 4
gpt4 key购买 nike

我在 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/ 触发相同的路由处理程序?

最佳答案

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

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

来自 Backbone documentation :

Part of a route can be made optional by surrounding it in parentheses (/:optional).

关于javascript - 如何忽略 Marionette route 的尾部斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38336567/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com