некоторые символы в URL меняются в шестнадцатеричном виде при загрузке страницы - PullRequest
0 голосов
/ 25 октября 2019

Когда я нажимаю href, URL-адрес изменяется во время загрузки страницы.

Я нажимаю href, www.test.com/main#/?arg1=1&arg2=2, затем он отображается в строке URL-адреса. Но во время загрузки страницы URL-адрес внезапно меняется на www.test.com/main#!#%2F%3Farg1=1&arg2=2

Я не уверен, почему # /? символы изменены на #! #% 2F% 3F

Эта проблема возникла с тех пор, как я обновил версию Angularjs.

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

Основной причиной был хэшбанг angularjs. angularjs теперь требует восклицательный знак. Я ставлю! символ, как это, и это работает.

! /?

0 голосов
/ 25 октября 2019

Rails не может работать с URL с # в середине. Только когда # является якорем URL.

Когда загружен .html.erb, Rails кодирует эти символы внутри URL. Вы можете сделать что-то вроде этого.

.html.erb

<%= link_to 'angular link','www.test.com/main#/?arg1=1&arg2=2', class: 'angular-link', data: { url: 'www.test.com/main#/?arg1=1&arg2=2' } %>

javascript

document.addEventListener('DOMContentLoaded', () => {
  const angularLinks = document.getElementsByClassName('angular-link');
  for(let angularLink of angularLinks) {
    setTimeout(function(){
      var angularURL = angularLink.getAttribute('data-url');
      angularLink.setAttribute('href', angularURL);
    }, 1000);
  }
});

Нелучшее решение, но оно работает 101

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