如果$ location.url == base(root)url,我如何使用ng-hide?

Tyl*_*ood 10 angularjs ng-show ng-hide

我想要一个←返回主页链接显示在我的Angular应用程序的每个页面上除了主页之外的nagivation.因此,ng-hide如果网址已经在应用的主页(视图)上,我想有条件地添加链接并隐藏它.

我尝试过使用angular的$location服务但没有成功

<p ng-hide="location.hash == '#/'" class="container"><a href="#topics">&larr; Back to Home</a></p>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下变化:

ng-hide="location.hash == '#/' " //console.log shows true
ng-hide="location.hash === '#/' " //console.log shows true
ng-hide="location.hash == '' "    //console.log shows false
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为如果我记录了我location.hash == '#/'在主页上的时间值true,那么ng-hide应该工作.

基本上我正在尝试这里列出的第三种方法: 如何根据我目前使用的页面/路线使用角度ng-hide?但它不起作用.对于我正在努力实现的目标,该页面上的另外两种方法看起来过于复杂.

我错过了什么?

Adr*_*atu 19

首先,当你使用location.hash或location.url时,实际上你正在使用window.location javascript对象,你应该使用angular提供的$ location服务.所以在你的控制器中我会创建:

$scope.currentPath = $location.path();
Run Code Online (Sandbox Code Playgroud)

在你的HTML中:

<div ng-hide="currentPath === '/'"></div>
Run Code Online (Sandbox Code Playgroud)

我会小心"#/"和"/",我只使用html5模式,所以我不确定$ location.path将返回什么,但你可以使用console.log轻松检查它($ location .path())我认为它只会返回"/",因为这是angular的路径,它不应该关心#.