gpt4 book ai didi

javascript - 如何从 Backbone 路由器中提取 id 参数

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

我有一个路由器设置如下:

var Router = Backbone.Router.extend({
routes: {
"/SomeApp/Scene/:id": "main",
}

main: function (sceneId) {
console.log(sceneId);
}
});

并在这里初始化:

$(document).ready(function () {
var router = new Router();
Backbone.history.start();
});

当我访问http://localhost:12345/SomeApp/Scene/5时,routes对象的路由不匹配,main( ) 未被调用。

如果我创建一个带有空键的路由,例如:

routes: {
"": "main",
}

然后调用 main(),但当然没有参数。

谁能指出我对路由参数的工作方式和/或我应该如何设置路由的误解?

谢谢。

编辑

我应该在一开始就提到的一个重点是应用程序是从服务器上的/SomeApp/Scene 提供的,而不是从站点的根目录提供的。

最佳答案

如果您从 /SomeApp/Scene 提供服务,您需要将其作为 root 参数传递给 Backbone.history:

$(document).ready(function () {
var router = new Router();
Backbone.history.start({pushState: true, root:'/SomeApp/Scene/'});
});

如果您不打算使用散列 (#),您也应该传递 pushState: true,否则它将不匹配。

路线:

routes: {
":id": "main",
}

以上将匹配:http://localhost:12345/SomeApp/Scene/5pushState: truehttp://localhost:12345/SomeApp/Scene/#5 没有它。

关于javascript - 如何从 Backbone 路由器中提取 id 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16895473/

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