我有一个产品列表(索引视图),当用户点击产品时,Lightbox会打开(显示视图)。现在,当用户关闭灯箱时,我想将他重定向回他来自的页面。问题是Lightbox可能是从几个不同的地方打开的。最好用一个例子来证明:
产品“Foo”出现在3个不同的页面上:
/ (the home page)
/tag/bar (all products tagged with "bar")
/tag/baz/page-3 (all products tagged with "baz", paginated)
现在我必须决定Lightbox关闭时重定向用户的位置。在这个阶段,没有关于Lightbox打开的页面的信息。
所以我想在打开Lightbox(渲染show view)时保存一个“returnTo”路径。 在控制器函数中,由哈希更改触发并呈现显示视图,但我似乎无法获得任何“引用者”信息。
有没有办法看到哪个页面触发了哈希变化? 或者有更好的方法来解决这个问题吗?
所有建议表示赞赏! :)
编辑:
我通过设置cookie解决了这个问题。 只要访问索引站点(可能是上面提到的三个中的任何一个),就会设置cookie。然后,当Lightbox关闭时,用户被重定向到cookie值,这是最后打开的索引站点。 但是,如果Backbone.js内置了一种方法来“记住”某种方式,那就太棒了。 Julien在其中一条评论中提到可以添加这样的功能。
答案 0 :(得分:1)
您可以在JS中触发浏览器后退按钮。假设你设置好一切,浏览器应该回到之前设置的哈希值。