Как я могу использовать ng-hide, если $location.url == base (root) url?

Мне бы хотелось, чтобы ссылка " Назад на дом" появлялась под наивацией на каждой странице моего приложения Angular, кроме главной страницы. Поэтому я хотел бы условно добавить ссылку и скрыть ее, используя ng-hide если URL-адрес уже находится на домашней странице (вид) приложения.

Я пытался использовать Angular's $location обслуживание без успеха

<p ng-hide="location.hash == '#/'" class="container"><a href="#topics">&larr; Back to Home</a></p>

Я пробовал следующие варианты:

ng-hide="location.hash == '#/' " //console.log shows true
ng-hide="location.hash === '#/' " //console.log shows true
ng-hide="location.hash == '' "    //console.log shows false

Я озадачен, потому что, если я регистрирую значение location.hash == '#/' когда на главной странице я получаю true, так ng-hide должно сработать.

В основном я пробую третий подход, перечисленный здесь: Как использовать угловое ng-hide на основе страницы / маршрута, на котором я сейчас нахожусь? Но это не работает. Два других подхода на этой странице кажутся слишком сложными для того, чего я пытаюсь достичь.

Что мне не хватает?

2 ответа

Решение

Перво-наперво, когда вы используете location.hash или location.url, вы на самом деле используете объект javascript window.location, вы должны использовать сервис $ location, предоставляемый angular. Итак, в вашем контроллере я бы создал:

$scope.currentPath = $location.path();

И в вашем html:

<div ng-hide="currentPath === '/'"></div>

То есть я буду осторожен с "#/" и "/", я использую только режим html5, поэтому я не уверен, что вернет $location.path, но вы можете легко проверить это с console.log($location.path()) хотя я думаю, что он вернет только "/", потому что это путь для angular, его не должно волновать #.

Angular ищет $scope переменная называется location, Если вы хотите, чтобы это работало, вы должны сделать:

$scope.location = window.location

в вашем контроллере. Но тогда вы должны действительно ввести $location и установить $scope.location = $location

Другие вопросы по тегам