如何在散列模式中定义到角路线的链接?

问题描述:

以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做同样的事情,但它不(我想这是因为我使用#!作为哈希串,但我不知道为什么有#/first这么多的例子,而不是#!/first,如果后者是默认的)
  • 可以这样定义logout动作吗?

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

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

+0

角路由在1.6中改变。请参阅http://*.com/questions/41211875/angularjs-1-6-0-latest-now-routes-not-working – Claies

hash-bang synthax是new from Angular 1.6。这个版本还是新的,它可以解释为什么你没有看到许多带有散列爆炸路由的文章。

不管怎么说,从这一行:

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

您可以重定向移动到logout()功能:

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

不要忘记注入$location

+0

是的,这就是我实际上在做的。所以完全没问题,对吧?那另一个问题呢? – FrozenHeart

+0

@FrozenHeart在我看来,它是最干净的方式。我已经更新了关于'#!/'synthax的回答,希望它有帮助! :) – Mistalis

+0

你确定location.url参数应该有一个hashbang字符串吗?它也适用于W/O它 – FrozenHeart