如何从骨干路由器中提取id参数
How to extract id param from Backbone Router
我有一个路由器设置如下:
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/5
与pushState: true
和http://localhost:12345/SomeApp/Scene/#5
,没有它
是否忘记在backbone.js前加上下划线?
http://imstillreallybored.com/bb.html搜索/测试
var Router = Backbone.Router.extend({
routes:{
"search/:query": "search"
},
search: function(search){
alert('search ' + search);
}
});
var app_router = new Router();
Backbone.history.start();
//app_router.navigate('#search/' + $.trim($(this).val()));
相关文章:
- 如何添加动态Id's并在运行时提取它们
- 如何在单击按钮后提取javascript中textarea的id(在本例中是动态的)
- 为什么不提取消息id?如何解决
- 如何从 JavaScript 对象中提取 ID(或其他属性)
- 从 YouTube 嵌入代码中提取视频 ID
- 获取字符串、提取 ID 和自动换行
- 从与模型ID列表匹配的主干集合中提取多个模型
- 使用jquery将id的值提取为字符串
- 使用正则表达式或javascript提取ID的最后一部分
- 从javascript中的url用户输入中提取id
- 如何从 id 中提取元素
- 如何从骨干路由器中提取id参数
- 如何从javascript的字符串中提取id
- 如何从googlemap addmarker()中提取id
- 如何从Javascript字符串中提取ID
- 如何通过单击JQuery按钮来提取id数据
- 从输入字段中抓取值并提取ID
- 使用jQuery从YouTube视频iFrame链接中提取ID
- 在所有这些情况下提取id
- jQuery查找文本并从子元素中提取id