Ionic Angular - Как заменить специальные символы префиксом для URI - PullRequest
0 голосов
/ 18 октября 2019

Я новичок в Ionic, и я взялся за проект от девушки, которая недавно покинула мою работу. Я получил дефект, когда пользователь вводит «N / A» для поиска заказа, он нарушает URI при поиске. Со-разработчик предположил, что замена «/» на «% 2F» исправит это в URI.

Для долгосрочного исправления я хотел бы иметь возможность прочитать, что пользователь ввел, и еслион содержит какие-либо специальные символы, а затем заменить его на этот префикс?

Вот некоторый код, который у меня есть:

   async getOrder() {
   if ( this.searchValue.length < 1) {
  console.log('search is empty');
  this.alertService.emptyInput();
} else {
    /**
     * Setup loading controller
     */
    const loading = await this.loadingController.create({
      message: 'Searching..'
    });
    await loading.present();

          // Get access token from storage
     this.storage.get(ACCESS_TOKEN).then((token) => {
       console.log('token from storage: ', token);

       if (this.searchValue === 'N/A') {
         this.searchValue = 'N%2FA';
       }
       const urlOrderNo = this.apiUrl + 'ordersearch/' + this.searchValue;

Так, например, я добавил = 'N / A', но мне также нужнопроверять строку каждый раз, поскольку номера заказов могут также содержать специальные символы.

Кто-нибудь мне поможет?

1 Ответ

1 голос
/ 18 октября 2019

Вы можете использовать любой из следующих методов:
1. escape() Этот метод не будет кодировать следующие @<em>/+
2. encodeURIComponent() Этот метод не будет кодировать следующие ~!</em>()'

Я предпочитаю второй метод encodeURIComponent()
Поэтому замените

if (this.searchValue === 'N/A') {
  this.searchValue = 'N%2FA';
}
const urlOrderNo = this.apiUrl + 'ordersearch/' + this.searchValue;

на

const urlOrderNo = this.apiUrl + 'ordersearch/' + encodeURIComponent(this.searchValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...