我的当前backbone应用程序有一个url:
localhost/#users
有没有一种方法可以在URL为
localhost/#users
时访问localhost/#users
并刷新页面?当前,当我在
localhost/#users
时,尝试使用以下代码:
window.location.hash = #users
或 myBackboneRouter.navigate("users")
但它不会触发页面刷新。我的当前backbone应用程序有一个url:
localhost/#users
localhost/#users
时访问localhost/#users
并刷新页面?localhost/#users
时,尝试使用以下代码:
window.location.hash = #users
或 myBackboneRouter.navigate("users")
但它不会触发页面刷新。在backbone中刷新同一页面,您需要使用
Backbone.history.loadUrl(Backbone.history.fragment);
window.location.reload()
那样进行完整页面重载。 - KafosomyBackboneRouter.navigate("users", {trigger: true})
会实现你想要的功能。if (this.fragment == frag) return;
这一行代码,这会在触发器强制调用路由之前将该过程短路。如果您只想运行着陆在该路由上时运行的代码,可以手动调用路由将哈希值映射到的函数。例如,如果你的路由器有 routes: {'users': 'users'}
,那么你只需调用 myBackboneRouter.users();
即可,而不必调用 navigate。 - heavi5idethis.fragment === frag
。可以将传递的frag转换为唯一的String对象,并强制使此比较为false。 - Elf Sternberg我使用以下三行代码重新加载我的backbone页面:
router.navigate(Backbone.history.fragment, true);
Backbone.history.loadUrl( Backbone.history.fragment );
router.refresh(true);
Backbone.history.loadUrl(Backbone.history.fragment);
为什么不使用呢?
window.location.reload();