再次单击链接时刷新主干js中的视图

时间:2014-02-20 14:25:48

标签: javascript backbone.js

所以我的页面顶部有一组导航链接。

其中一个链接到用户拥有的硬件列表,显示名称和描述。

  1. 如果渲染得很好,我会点击导航链接和我的硬件列表。
  2. 进入数据库,更改其中一个硬件的名称。
  3. 现在我再次点击页面上的导航链接。我希望骨干能够 再次渲染页面。但它没有。
  4. 每次调用渲染时,我都会向控制台打印一条消息。第二次单击不会在视图上运行渲染功能。

    我想,当激活已经打开的路由时,骨干网会阻止重新呈现视图或调用事件。当我第二次点击导航链接时,有没有办法让它重新渲染已打开的视图?

1 个答案:

答案 0 :(得分:0)

如果路线已经在该路线上,那么Backbone会阻止路线触发。

有一些解决方案。

您可以通过劫持链接并致电router.navigate("route/path", {trigger: true});来强行触发路线。

或者,更好的是,避免触发路由器并使用api对象。这是Derick Bailey has written about here。第一次之后的每次点击都会使用api重新运行渲染代码,绕过Backbone路由器。您可以在the bbclonemail app中看到此方法的更高级用法。