angularjs - 我可以从 AngularJS 收回对 URL 哈希片段的控制吗?

标签 angularjs url

我正在使用 AngularJS,并想处理给定的 #hash-fragment在地址栏中。然而,——这是关键——我不会使用散列片段来编码路径。但似乎 AngularJS 坚持以这种方式解释它。

例如,当 html5Mode被禁用:

  • 给定的 URL:http://my.domain.com#my-hash
  • 变成了http://my.domain.com/#/my-hash , 和
  • $location.hash()将是空的。

  • html5Mode已启用:
  • 给定的 URL:http://my.domain.com#my-hash
  • 变成了http://my.domain.com/my-hash , 和
  • $location.hash()仍将是空的。

  • AngularJS 一定在想:“哦,你有 html5,让我为你删除那个哈希”。多么体贴……

    $location.hash() 获得任何东西的唯一途径是当 URL 具有双哈希值时:
  • 对于给定的 URL:http://my.domain.com##my-hash
  • $location.hash()最终等于 "my-hash" , 和
  • 如果还有$locationProvider.html5Mode(true)哈希值之一从 URL 中删除。

  • 但我真的需要一个简单的单个哈希字符来保持未处理状态。这可能吗?

    最佳答案

    #在angular api docs页面上似乎工作得很好。所以通过一点窥探和测试,我发现

    app.config(function($locationProvider) {
        $locationProvider.html5Mode(true).hashPrefix('!');
    });
    

    有所作为。

    关于angularjs - 我可以从 AngularJS 收回对 URL 哈希片段的控制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20268213/

    相关文章:

    python - Python/Django 中的个性化/随机 URL

    javascript - 如何从图像 URL 获取状态代码? JavaScript

    asp.net - 在angularJS的路由中如何删除url中的 '#'?

    angularjs - Ng-显示过滤的搜索是否为空?

    python - 等待由 python 代码启动的 youtube 视频完成

    java - 在 Java 中验证 URL

    wordpress - 重写类别 wordpress

    angularjs - 嵌入: 'element' along with templateUrl, 可行吗?

    javascript - AngularJs - 一个 $watch 函数中的多个应用/摘要周期

    javascript - Angular 智能感知 VS2015 RTM