我有一个使用 DurandalJS 的 SPA 应用程序,效果很好。链接被路由、视图模型被激活等。
问题是,我有一个锚点指向实际存在于服务器上的页面。我需要浏览器来实际查询此页面(这是一个 asp.net MVC 页面)。
看起来 Durandal 中的路由器会挂钩到所有相对的链接(或者实际上在同一域上),如果找不到路由,则调用路由器的 handleInvalidRoute 方法。
我一生都无法弄清楚如何告诉 Durandal 不要路由此 URL。我还需要保留中键/Ctrl+单击功能。
文档没有任何帮助,谷歌也没有发现任何结果。我还尝试查看路由器/SammyJs 代码,但我看不到任何明显的东西。
这个问题 https://stackoverflow.com/questions/15731534/link-to-another-controller-with-hot-towel-and-durandal似乎和我的一样,但答案对我不起作用。我的 URL 都是实际 URL(没有哈希前缀),因此我无法关闭 PushState。
到目前为止,我发现的最简单的方法是创建一个绝对网址(例如http://myapp.com/whatever-that-is-not-a-sammy-route http://myapp.com/whatever-that-is-not-a-sammy-route)并添加
target="_top"
到锚点。这允许新选项卡行为(ctrl+单击、中键单击、打开新选项卡上下文菜单),并且当左键单击链接时,它将在当前窗口中打开,绕过 Sammy 路由!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)