Javascript 使用backbone.js路由区分向后/向前导航

Javascript 使用backbone.js路由区分向后/向前导航,javascript,backbone.js,coffeescript,Javascript,Backbone.js,Coffeescript,我在这里有一个简单的路由器设置: class Router extends Backbone.Router routes: '/a': 'a' '/b': 'b' a: -> alert 'a' b: -> alert 'b' app = new Router() app.navigate '/a' Backbone.history.start() 代码如下: 在使用中,您可以看到哈希url的更改: 这是可行的,它在散列更改时运行代码。但我怎么知

我在这里有一个简单的路由器设置:

class Router extends Backbone.Router
  routes:
    '/a': 'a'
    '/b': 'b'

  a: -> alert 'a'
  b: -> alert 'b'

app = new Router()
app.navigate '/a'
Backbone.history.start()
代码如下:

在使用中,您可以看到哈希url的更改:

这是可行的,它在散列更改时运行代码。但我怎么知道是向前点击链接加载新页面,还是按下后退按钮?如果我们返回到上一个屏幕,我想用稍微不同的方式设置动画


基于散列的URL支持这种区别吗?

我们最后做了一些我不太满意的事情。我们在url中对页面深度进行编码

foo.html#!1/index
foo.html#!2/detail/123

然后我们可以很容易地看到这个数字是上升还是下降,并相应地设置动画。它可以工作,但不能很好地工作。

您没有一个好的答案,但是您可以绑定到hashchange/onpopstate来跟踪您自己的历史堆栈并将当前url与堆栈进行比较吗?