AngularJS не позволит мне загрузить другую страницу

0

Я хочу иметь ссылку, которая идет на другую страницу, и ничто, что я делаю, не имеет видимого эффекта на странице. Я пытался:

  • <a href="url">

  • <a href="url" target="_self">

  • <a ng-click="register()">

где регистр - это функция контроллера, с телами функций, которые я пробовал:

  • $window.location.href(url)

  • $window.location.href= url

  • $window.location = url

все за которым следует $window.location.reload() (который даже не обновляет страницу после неспособности изменить URL-адрес). Каждый метод был принят в качестве действительного ответа для других людей, задающих тот же вопрос. Я использую угловой 1.2, который довольно старый.

РЕДАКТИРОВАТЬ: Извините за то, что вы не указали больше, чтобы избежать путаницы; url является просто заполнителем строки строки, и все мои элементы закрыты должным образом. Я просто пытался быстро перечислить все методы, которые я видел с других страниц на этом сайте (все это не удалось). Я также в html5mode для $ location.

Теги:

3 ответа

1

Пытаться:

$location.path("/Home/Index....");

$ должно быть введено в контроллер. Используйте это в своем событии ng-click. $ location.path

Не знаю, сделали ли вы это, но ваш HTML должен выглядеть так:

<a ng-href="{{url}}">
  • 0
    Использование ng-href успешно изменяет URL, но не перезагружает страницу. Кажется, что Angular блокирует мои вызовы $window.location.reload() и window.location.reload поскольку ни один из них не делает ничего в сервисе или директиве, но последний работает в консоли.
  • 0
    Может быть, вы можете уточнить «перезагрузить страницу», что произойдет, если вы заставите эту перезагрузку? Angular использует технологию HTML-5 для установки URL-адреса и загружает внутренний URL-адрес и контент. Если вы хотите принудительно перезагрузить страницу, попробуйте $location.path('/Home/Index...'); $route.reload(); $ route.reload
1

Так я обычно это делаю. В вашем html:

<a href="javascript:" ng-click="register();">Register here!</a>

И в вашем контроллере у вас будет такая функция:

$scope.register = function() {
    $window.location = '#/register';
};

Например, ваша домашняя страница - domain.com/#/home и вы пытаетесь установить ссылку на domain.com/#/register.

  • 0
    Я могу изменить URL с помощью этого метода, но страница не перезагружается, и ни $window.location.reload() ни window.location.reload() ничего не делают при вызове в angular (последний работает, если вызывается из консоли) ,
0

Возможно, опечатка html, но вы пишете их в хорошем синтаксисе?

<a href="url">My link </a>

<a href="url" target="_self">My link </a>

<a ng-click="register()">My link </a>
  • 0
    Да, это должно работать. Для ссылки ng-click я бы добавил href="#" чтобы иметь нормальные стили ссылок. Пожалуйста, посмотрите на этот plunkr .
  • 0
    Вы не должны помещать ng-click в тег <a> , вместо этого используйте span , div или p
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню