是否有办法在backbone.js中触发相同的位置路径,例如,当位置为/My/App/#/About时,用户再次单击具有相同路径的锚以刷新页面内容。
/My/App/#/About
qhhrdooz1#
Backbone.history.loadUrl(Backbone.history.fragment);
针对您的特定问题的解决方案并没有真正记录下来,建议的最佳实践似乎是只调用在您要触发的路由中声明的函数:/参考编号:https://github.com/documentcloud/backbone/issues/1214到目前为止,其他答案都是正确的,但他们忘记提到,如果导航到的哈希与当前哈希相同,则不会触发任何东西。
rpppsulh2#
Router.navigate('about', true);
这样,您就可以手动触发路由。
mxg2im7a3#
假设您要对不止是“关于”页执行此操作,请用途:
route = Backbone.history.fragment; yourRouter.navigate(route, true);
46scxncf4#
因为 Backbone 路由器会在你想要加载的URL片段中寻找变化,所以我的做法是先导航到'/'而不使用触发器,然后再导航到你想要用触发器命中的URL(片段)。如果你愿意的话,你可以很容易地将此构建到默认的路由器行为中。例如:
App.Routers.appRouter.navigate '/', {trigger: false} App.Routers.appRouter.navigate myPath, {trigger: true}
n53p2ov05#
使用Backbone 0.9.2,您可以传入一个选项对象,并将“trigger”设置为“true”。
router.navigate('some/route', { trigger : true });
参考:http://documentcloud.github.com/backbone/#Router-navigate
cwtwac6a6#
另一个选项:您可以添加一个带有随机值的参数,这样每次调用的哈希值都不同,即使您调用的是同一个页面。
vsnjm48y7#
谢谢你的建议@eddywashere,真的很棒。我在我的网站上添加了一个小编辑,检查你是否在最后一个(最新的)网址上,如果是,加载历史记录。非常简单,我想它可能会帮助一些有同样问题的人。
$("[data-href]").on("click", function(e) { var href; e.preventDefault(); href = $(e.currentTarget).data("href"); if ((_.last(this.history)) === href) { return Backbone.history.loadUrl(_.last(this.history)); } else { return this.router.navigate(href, true); } });
4dc9hkyq8#
router.navigate(route, {trigger: false}); // Changes URL but it will not trigger...Ex: In place of route -- 'about/1' or 'about' etc Backbone.history.loadUrl(Backbone.history.fragment); // Changed route will be triggered here.
8条答案
按热度按时间qhhrdooz1#
针对您的特定问题的解决方案并没有真正记录下来,建议的最佳实践似乎是只调用在您要触发的路由中声明的函数:/
参考编号:https://github.com/documentcloud/backbone/issues/1214
到目前为止,其他答案都是正确的,但他们忘记提到,如果导航到的哈希与当前哈希相同,则不会触发任何东西。
rpppsulh2#
这样,您就可以手动触发路由。
mxg2im7a3#
假设您要对不止是“关于”页执行此操作,请用途:
46scxncf4#
因为 Backbone 路由器会在你想要加载的URL片段中寻找变化,所以我的做法是先导航到'/'而不使用触发器,然后再导航到你想要用触发器命中的URL(片段)。如果你愿意的话,你可以很容易地将此构建到默认的路由器行为中。
例如:
n53p2ov05#
使用Backbone 0.9.2,您可以传入一个选项对象,并将“trigger”设置为“true”。
参考:http://documentcloud.github.com/backbone/#Router-navigate
cwtwac6a6#
另一个选项:您可以添加一个带有随机值的参数,这样每次调用的哈希值都不同,即使您调用的是同一个页面。
vsnjm48y7#
谢谢你的建议@eddywashere,真的很棒。我在我的网站上添加了一个小编辑,检查你是否在最后一个(最新的)网址上,如果是,加载历史记录。非常简单,我想它可能会帮助一些有同样问题的人。
4dc9hkyq8#