【问题标题】:How do I get Durandal Router to stop messing with href="#"?如何让 Durandal 路由器停止使用 href="#"?
【发布时间】:2013-06-04 12:37:24
【问题描述】:

我开始使用 Durandal JS,到目前为止它运行良好。

我有一个问题 - 我的所有链接都被 Durandal 的路由器(引擎盖下的 Sammy JS)拦截。我怎样才能让它不理会我的链接? <a href="#"></a>

如果有一个 Sammy JS 特定的替代主题标签作为 href 让浏览器认为它是一个链接,那也很棒。

【问题讨论】:

标签: durandal sammy.js


【解决方案1】:

Durandal 的 router.js 是一个可选组件,因此如果您不需要它,您可以删除加载 sammy.js 的脚本标签并删除 durandal/plugins/router 作为 AMD 中的依赖项。 如果您需要部分保护某些链接不被router 处理,那么guardRoute http://durandaljs.com/documentation/Router/ 可能是您最好的选择。

这假设您运行的是 Durandal 1.2 而不是来自 github 的最新代码(正在进行中),其中 router.js 刚刚被完全重写并且不再依赖于 sammy.js

【讨论】:

  • 我确实需要它 - 连接到 guardRoute 和 handleInvalidRoute 也没有帮助。但是,添加 Click 事件处理程序似乎确实抑制了 Sammy 的 404。
  • 所以目标是提供手动链接到路由器处理的现有路由?您是否尝试使用尾部斜杠,例如<a href="#/">SO16918061 quick test</a>?
  • 目标是有一个什么都不做的可点击链接:)
  • href 的有趣用例 :)。 SO16918061 快速测试怎么样
  • 我在做原型,在添加了一个 Click 事件处理程序后,一切都再次创造奇迹! :)
【解决方案2】:

我在锚标签 href 元素中使用以下内容:

href="javascript:void(0);"

它似乎正在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多