2016-08-25 2 views
1

В настоящее время у меня есть URL, как это:как мы можем обрабатывать специальный символ в URL с угловым JS 2

http://localhost/foo/barbar(2222) 

, но он не работает с угловыми 2, когда я пытаюсь открыть его на вкладке. Это показывает ошибка, как это:

Error: Cannot match any routes: '2222'

Как мы можем справиться с этой проблемой в AngularJS 2. Для того, чтобы получить результат, как если бы мы открываем его с закодированной URL: http://localhost/foo/barbar%282222%29

+0

Как вы определили маршруты? – JanR

+0

уже определите это. он отлично работает, когда я использую url без специальных символов, подобных этому 'http: // localhost/foo/barbar2222' – JeeDee

+0

Нам все равно нужно будет увидеть ваше определение маршрутов, чтобы увидеть, что может быть неправильным. – ranieuwe

ответ

2

В этом momment, это ошибка с компонентом маршрутизатора. Существует обходное решение, которое его исправляет. Вы должны продлить encodeUri.

encodeURIComponent(str) { 
    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { 
     return '%' + c.charCodeAt(0).toString(16); 
    }); 
} 

Проверьте проблему в репозитории Angular's GitHub.

https://github.com/angular/angular/issues/4895

Смежные вопросы