javascript - 如何在 hashbang 模式下定义指向 Angular 路由的链接?

标签 javascript angularjs url

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

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

  <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但由于某种原因它对我不起作用(我想那是因为我使用 #! 作为哈希字符串,但我不知道为什么有这么多示例使用 #/first 而不是 #!/first 如果后者是默认)
  • 可以定义logout采取这种方式?
    <li><a href="#!/" ng-click="logout()">Logout</a></li>
    

  • 因为它对我来说似乎有点难看。

    最佳答案

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

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

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

    您可以将重定向移动到 logout()功能:
    $scope.logout = function() {
        ...
        $location.url('/home');
    }
    

    不要忘记注入(inject) $location .

    关于javascript - 如何在 hashbang 模式下定义指向 Angular 路由的链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42436959/

    相关文章:

    javascript - 在输入字符时扩展输入类型文本的更优雅的方式

    javascript - 如何在md-switch的两侧放置文本?

    sql - 如何从Grails中的SQL查询获取字符串值?

    php - 如果数据库中已存在URL,如何使用PHP检查?

    javascript - 覆盖 window.fetch 原型(prototype),它添加自定义 header

    javascript - 切换特定超链接单击时对象的可见性

    javascript - AJAX仅在一行中发送文本

    javascript - 如何使 routeParams 可选

    javascript - 用Angular将文件异步加载到对象数组中并保持其顺序

    javascript - 匹配简单 URL 的正则表达式无法正常工作