我有一个模态弹出窗口,打开时会更改URL。当用户关闭弹出窗口时,我想回到之前的URL,但我不想触发与该URL关联的路由,因为这将重新加载我的集合并呈现视图等。有没有办法调用{{1没有触发路由,或者是否存在与此类似的骨干?
我能想到的唯一解决方案是保存以前的路线,然后当模态关闭时调用
window.history.back()
但这似乎是解决一个简单问题的复杂方法。
答案 0 :(得分:5)
在路由器中存储历史听起来像是一个很好的解决方案,我无法找到解决此问题的更好方法。
这方面的一个很好的解决方案是: Silently change url to previous using Backbone.js
我会做一个小调整,所以看起来像这样:
class MyRouter extends Backbone.Router
initialize: (options) ->
@on "all", @storeRoute
@history = []
storeRoute: ->
@history.push Backbone.history.fragment
previous: ->
if @history.length > 1
@navigate @history[@history.length-2], false
else
@navigate '', true
然后你可以调用MyRouter.previous(),如果你是直接请求,它会把你带到你的根目录。
我希望它是路由器的默认功能,至少保留最后5个路由。