我有一个模态弹出窗口,打开时更改URL.当用户关闭弹出窗口时,我想回到之前的URL,但我不想触发与该URL关联的路由,因为这会重新加载我的集合并呈现视图等.有没有办法在window.history.back()不触发的情况下调用路线,还是有骨架相当于此?
我能想到的唯一解决方案是保存以前的路线,然后当模态被关闭时调用
Backbone.history.navigate(route, {trigger: false, replace: true});
Run Code Online (Sandbox Code Playgroud)
但这似乎是解决一个简单问题的复杂方法.
在路由器中存储历史听起来像是一个很好的解决方案,我无法找到更好的方法来解决这个问题.
这方面的一个很好的解决方案是: 使用Backbone.js静默地将url更改为previous
我会做一个小调整,所以看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
然后你可以调用MyRouter.previous(),如果你是直接请求,它会带你到你的root.
我希望它是路由器的默认功能,至少使它保留最后5条路由.
| 归档时间: |
|
| 查看次数: |
9218 次 |
| 最近记录: |