Ресурс AngularJS: отправлять параметр запроса, только если он не пуст - PullRequest
1 голос
/ 12 апреля 2019

У меня есть ресурс Angularjs, и в одном из методов я хочу отправить параметр запроса в бэкэнд, если этот параметр запроса не пустой. Можно ли добиться этого без создания другого метода?

Пример метода ресурсов:

get: {
      method: 'GET',
      url: /api/:token?source=:source,
      paramSerializer: someSerializer
    },

Код для вызова метода:

myResource.get({token: '1234'}, {source: <some source>});

Токен является обязательным, но источник является необязательным, поэтому иногда он не передается на вызов выше. Поэтому, если для источника указано значение, я хочу иметь возможность отправить источник. Если значение источника не указано, я не хочу отправлять источник вообще. Например, вызов станет / api / 1234, если источник пуст, и вызов станет / api / 1234? Source = some_source, если источник установлен как some_source.

С помощью приведенного выше кода, если источник пуст, я вижу, что запрос «/ api / 1234? Source =», когда источник пуст.

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Просто определите шаблон URL без дополнительных параметров:

get: {
      method: 'GET',
      url: "/api/:token",
    },

Затем добавьте дополнительные параметры при вызове действия:

myResource.get({token: '1234', source: <some source>});

Дополнительные параметры будут автоматически добавлены в URL в качестве параметров запроса.

Из документов:

Каждое значение ключа в объекте параметра сначала привязывается к шаблону URL, если таковой имеется, а затем любые лишние ключи добавляются к поисковому запросу URL после ?.

Для получения дополнительной информации см.

1 голос
/ 12 апреля 2019

Если вы передаете параметры запроса через get.params {}, то AngularJS автоматически обработает удаление неопределенных свойств.

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