我有一些路线:
routes: {
"": "main",
"!/": "main",
"!/page": "page",
"!/page/:id": "page"
},
然后我有一些HTML链接,例如:
<a href="site.com/#!/page/3">my link</a>
如果我按下我的链接,我会访问网址site.com/#!/page/3
,这对我来说没问题。但如果我有这个链接:
<a href="javascript:void(0);" onclick="Backbone.history.navigate('!/page/3', {trigger:true});">my link</a>
我访问了网址site.com/#!/page/
(没有id=3
)。 Id仍然是定义的。但是在页面重新加载后,我的ID有问题,因为我有网址:site.com/#!/page
,并且未定义ID。
如何使用以下链接标记在Backbone中导航?
<a href="javascript:void(0);" onclick="Backbone.history.navigate('!/page/3', {trigger:true});">my link</a>
答案 0 :(得分:0)
骨干路由使用片段就像任何其他锚链接一样。您只需要使用href
,因为它可以使用:
<a href="#!/page/3">my link</a>
点击此类链接时,无需将trigger
设置为true,因为它是默认行为。 Backbone侦听hashchange
或popstate
事件,并在必要时触发路由。
此外,routes
哈希可以简化:
routes: {
"*anything": "main",
"!/page(/:id)": "page"
},
路由可以包含与单个URL匹配的参数部分
:param
斜杠之间的组件;和splat部分*splat
,可以匹配任何 URL组件的数量。部分路线可以选择 用括号(/:optional)
围绕它。