【问题标题】:How to define links to angular routes in hashbang mode?如何在 hashbang 模式下定义指向角度路由的链接?
【发布时间】:2017-02-24 11:00:12
【问题描述】:

在 hashbang(非 HTML5)模式下定义指向角度路由的链接的正确方法是什么?

假设我有以下导航。酒吧:

  <div class="collapse navbar-collapse">
    <ul class="nav navbar-nav">
      <li><a href="#!/first">First</a></li>
      <li><a href="#!/second">Second</a></li>
    </ul>
    <ul class="nav navbar-nav navbar-right">
      <li><a href="#!/" ng-click="logout()">Logout</a></li>
    </ul>
  </div>

它有效,但我有以下问题:

  • 我看到很多文章作者通过/first#/first 而不是#!/first 做同样的事情,但由于某种原因它对我不起作用(我想那是因为我正在使用@987654326 @ 作为哈希字符串,但我不知道为什么有这么多的例子是 #/first 而不是 #!/first 如果后者是默认的)
  • 这样定义logout动作可以吗?

    <li><a href="#!/" ng-click="logout()">Logout</a></li>
    

因为我觉得有点丑。

【问题讨论】:

标签: javascript angularjs url


【解决方案1】:

哈希爆炸合成器是new from Angular 1.6。这个版本还是新的,它可以解释为什么你没有看到很多关于 hash-bang 路由的文章。

无论如何,从这一行开始:

<li><a href="#!/" ng-click="logout()">Logout</a></li>

您可以将重定向移动到logout() 函数:

$scope.logout = function() {
    ...
    $location.url('/home');
}

别忘了注入$location

【讨论】:

  • 是的,这就是我正在做的事情。所以完全没问题,对吧?那么另一个问题呢?
  • @FrozenHeart 在我看来,这是最干净的方式。我已经更新了关于 #!/ 合成器的答案,希望对您有所帮助! :)
  • 你确定 location.url 参数应该有一个 hashbang 字符串吗?不带它也可以工作
  • @FrozenHeart 我的错,你可以改用'/home'。固定!
猜你喜欢
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 2016-07-30
  • 2020-06-15
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多