gpt4 book ai didi

backbone.js - 使用 Backbone.history 返回而不触发路由功能

转载 作者:行者123 更新时间:2023-12-04 15:14:07 25 4
gpt4 key购买 nike

我有一个模式弹出窗口,打开时会更改 URL。当用户关闭弹出窗口时,我想返回上一个 URL,但我不想触发与该 URL 关联的路由,因为这会重新加载我的集合并呈现 View 等。有没有办法调用 window.history.back()不触发路由,或者是否有与此等效的主干?

我能想到的唯一解决方案是保存以前的路线,然后当模态关闭时调用

Backbone.history.navigate(route, {trigger: false, replace: true});

但这似乎是解决简单问题的复杂方法。

最佳答案

在路由器中存储历史记录对我来说听起来是一个很好的解决方案,我想不出更好的方法来解决这个问题。

一个很好的解决方案在这里:
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 个最后的路由。

关于backbone.js - 使用 Backbone.history 返回而不触发路由功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11364837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com