Угловая интерполяция {{}} в параметрах URL, есть ли способ дезинфицировать URL? - PullRequest
1 голос
/ 04 июня 2019

У нас есть проблема в крайнем случае, когда внешнее приложение требует, чтобы в URL-запросе нашего веб-сайта присутствовал определенный параметр URL:

https://stackoverflow.com/questions/ask?abc=123

Вот скриншот:

Example error of {{}}

Иногда параметр url некорректно отображается, в результате чего URL становится:

https://stackoverflow.com/questions/ask?abc={{}}

У нас есть угловое приложение для нашего приложения, оно не может разобрать это, вызывая ненужные ошибки для веб-страницы.

Есть ли в angular способ кодирования URL-адреса перед его попаданием в приложение?

Подробнее

  • угловой 1.6.6

Текущее решение

У нас есть временное решение для перенаправления nginx, но мы считаем, что будет лучше, если мы исправим источник проблемы.

Мы много читали о том, как изменить теги шаблона, но это огромное исправление.

Ожидаемое

Мы не используем произвольные переменные url . Мы хотим, чтобы он не выдавал ошибку и нормально функционировал, как ожидалось, когда не разбирал https://stackoverflow.com/questions/ask?abc={{}}

Ответы [ 3 ]

1 голос
/ 04 июня 2019

Вам необходимо связать параметр в [queryParams]="{ 'abc':'test' }"

Поскольку объект должен быть передан, вы можете создать его динамически в машинописи.

Попробуй так:

HTML

<a [routerLink]="['https://stackoverflow.com/questions/ask']" [queryParams]="getQueryParam()">Link</a>

TS

  getQueryParam() {
    var queryParam = {};
    queryParam['abc'] = this.some_variable;
    return queryParam;
  }
0 голосов
/ 13 июня 2019

После исследования мы обнаружили, что Drupal рендерит формы, используя функцию request_uri (), которая не кодирует выходные данные. Следовательно, URL-адрес действия вызывает ошибку angular при загрузке на страницу.

Решение, которое мы нашли, это добавление перенаправления.

0 голосов
/ 04 июня 2019

Проблема может быть связана с этим:

https://github.com/angular/angular.js/commit/5930b8ee27e441aa4422d9174dcc7eb7db30e400.

То есть, это известная проблема с Angular.

...