如何在关闭对话框时禁用 backbone.js 添加 /#

How to disable backbone.js from adding /# when dialog is closed

当我加载 backbone 页面并按下后退按钮时,它会将 /# 添加到 url。如果我再次单击返回,它会从 rails 主视图加载空索引页。我通过关闭 turbolinks 解决了这个问题。

但是,当我打开任何 foundation.js 对话框时,它还会将相同的 /# 附加到 url。现在,当我返回而不是转到上一页时,它会再次加载空 rails 主页而不是加载 backbone 页面。

如何防止 backbone 添加此 /# 哈希。

我的 rails 索引页是:

<div class="containing_div"><div>
<%= javascript_tag do -%>
    (function () {
       MyApp.initialize();
    })();
<% end -%>

我的初始化函数是:

  initialize: function(){
    this.private.biography = new MyApp.Models.BiographyModel();
    this.private.purposeModel = new MyApp.Models.PurposeModel();
    new MyApp.Routers.Welcome();
    if(!Backbone.History.started){
     Backbone.history.start();
    }
    this.initializeData();
  }

我的路由器是:

MyApp.Routers.Welcome = Support.SwappingRouter.extend({

    initialize: function(options){
        this.el = $('div.containing_div');
    },
    routes: {
        "": "index"
    },

    index: function(){
        var view = new MyApp.Views.WelcomeIndex();
        this.swap(view);
    }
})

这就是我关闭模式的方式:

$('#profileModal').foundation('reveal', 'close', {
    animation: 'none'
});

我猜想为了 open/close 您正在使用模态,这是切换到 /# 的默认浏览器行为。您要么应该使用常规(顺便说一句,可以在 之外使用),要么在单击 .

时禁用事件传播