【问题标题】:can anyone explain why (http://localhost:3000/#/home) # occurs inbetween the url谁能解释为什么 (http://localhost:3000/#/home) # 出现在 url 之间
【发布时间】:2014-10-13 08:48:12
【问题描述】:

我是 angular js 和 node js 的新手,我有一些疑问,谁能解释为什么 # 出现在 url(localhost:3000/#/home) 之间

【问题讨论】:

  • 这些被称为角度视图。默认情况下,angularjs 在视图之间切换时将 # 添加到 URL。请阅读有关角度视图的更多信息。我发现tutorials.jenkov.com/angularjs/routes.html 是一个很好的教程。

标签: javascript node.js angularjs


【解决方案1】:

这些被称为 Hashbang URL。通常我们在 Hash # 之后的任何内容都不是另一个 URL,但它仍然属于同一个 HTML 页面。随着 JS 库的增加和 Web 浏览器功能的增加,现在我们可以使用 HTML5 历史 API 替换 URL。

这种 hashbang 技术被用作旧浏览器的后备,即整个应用程序在单个 HTML 页面上运行,Angular 会监视 URL 中的任何 # hash 变化并触发适当的路由控制器。

我建议您阅读有关 hashbang URL 的更多信息: Doing links like Twitter, Hash-Bang #! URL's

【讨论】:

    【解决方案2】:

    当您在 AngularJS 中的单页应用程序中导航时,旧浏览器不会完全重新加载页面。

    它被称为 Hashbang,您可以在文档中了解更多信息:

    https://docs.angularjs.org/guide/$location#hashbang-and-html5-modes

    【讨论】:

      【解决方案3】:

      # 在 URL 段中表示标签 ID,用于自动跳转到长页面中的该部分。现在这被用于虚拟导航目的的java脚本框架(如angular)使用,即更改#之后的部分不会导致浏览器重新加载整个页面并在内部使用div元素来显示/隐藏在 SPA(单页应用程序)中。

      【讨论】:

        猜你喜欢
        • 2020-10-12
        • 1970-01-01
        • 2010-12-01
        • 2015-04-10
        • 1970-01-01
        • 1970-01-01
        • 2020-10-13
        • 1970-01-01
        • 2013-04-16
        相关资源
        最近更新 更多