javascript - url 中没有哈希值的回家路线...backbone.js?

标签 javascript backbone.js hash

我并不是真的在谈论 PushState 我不这么认为。我正在将一个新模型保存到我的 localStorage 集合中。主页上有一个操作会路由到一个新 View ,该 View 具有一个序列化字段的表单,并创建一个使用 create 函数添加到 localStorage 的对象。

出于测试目的,我在代码中注释掉了下面的router.navigate,以查看我的 View 是否能够通过在事件触发后手动删除哈希值 (#) 来正确呈现(确实如此)。

router.navigate 确实成功路由回家,但留下了尾随哈希值 (#)。我认为哈希导致了问题,有没有办法在没有哈希的情况下路由回来。或者,如果哈希不允许我重新渲染,我是否需要重新考虑一些代码?

save: function(e) {
    var playerObject = $(e.currentTarget).serializeObject();
    var playersCollection = new PlayersCollection();
    playersCollection.fetch({
        success: function(player) {
            player.create(playerObject);
            //router.navigate('', {trigger: true});
        }
    });
    return false;
}

最佳答案

检查source ,您会看到 navigate 调用函数 _updateHash。它总是添加前导“#”:

_updateHash: function(location, fragment, replace) {
  if (replace) {
    var href = location.href.replace(/(javascript:|#).*$/, '');
    location.replace(href + '#' + fragment);
  } else {
    location.hash = '#' + fragment;
  }
}

所以我没有看到“犹太洁食”的方式来做到这一点。我想您可以修改您的 Backbone.js 源(当片段为空时排除哈希,或者添加一个排除它的 navigate 选项)。

关于javascript - url 中没有哈希值的回家路线...backbone.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20646907/

相关文章:

javascript - geoCoder respsone 循环 - 无法读取未定义的属性 '0'

javascript - Backbone Marionette 获取区域 View

javascript - 在集合 add() Backbone.js 上添加时间戳和排序顺序字段

c# - HMACSHA256 在计算哈希时忽略零

javascript - redux-saga: token 刷新后重试捕获的操作

javascript - 如何在javascript中设置传递的函数

ruby - 使用 ruby​​ hash 作为从更大的 hash 中选择的约束

python - 散列嵌套元组的限制?

javascript - moment.js 如何知道它的对象何时被序列化?

javascript - 如何在没有包装器的情况下将 Backbone.View.el 绑定(bind)到模板?