Реализация пользовательской утилиты вместо `window.location.assign` - PullRequest
0 голосов
/ 30 октября 2018

Я использую AngularJS, и в контроллере у меня есть функция, подобная этой.

  ctrl.onClick = (id) => {
    window.location.assign(`#/services/${id}`);
  }

Я хочу использовать один из наших пользовательских утилит location. Вот код для этого:

export const redirectTo = (route) => {
  const { location } = window;
  location.href = `${location.origin}${route}`;
};

Я импортирую его в контроллер, и путь указан правильно. Но с тем, что я написал, редирект не работает.

Вот моя реализация:

  ctrl.onBrokerClick = (id) => {
    redirectTo(`#/services/${id}`);
  }

Какого черта я здесь делаю не так? Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Хорошо, просто чтобы ответить на мой собственный вопрос здесь. Когда вызывался redirectTo(), он предоставлял префикс homepage. В моей функции вместо этого:

ctrl.onBrokerClick = (id) => {
    redirectTo(`#/services/${id}`);
  }

Я сделал это для дополнения отсутствующего префикса:

ctrl.onBrokerClick = (id) => {
    redirectTo(`/homepage/#/services/${id}`);
  }

Это, безусловно, менее изящное решение, но пока оно работает. Мне придется посмотреть, что сказал @front_end_dev.

0 голосов
/ 30 октября 2018

Вы можете попробовать history.pushState(null,null,'new_url_address') загрузить новый URL.

Следуйте этой документации для истории API - https://developer.mozilla.org/en-US/docs/Web/API/History_API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...