在我的视图中,我渲染集合,并有排序按钮。单击排序按钮后,将使用一些自定义查询参数(如&sort=id+desc
)提取集合。它可以工作,但我也想将url querystring更改为此查询参数(&sort=id+desc
)。问题是,它可以工作,但它会重新呈现整个视图,因为路由器只是重定向到不同的操作(实际上是相同的操作,但具有不同的查询参数)。
如何在不重新加载视图的情况下更改url查询参数并将其添加到历史记录中?
我在我的应用中使用pushState
您应该为此使用骨干路由器。
当应用程序启动时,您需要运行:
Backbone.history.start({pushState: true});
要更改URL,只需使用路由器:
router.navigate("something?key=value");
如果你没有路由器,你只需要创建一个:
var router = new Backbone.Router();