Angular6: Как установить и передать параметры с помощью HttpParams в одну строку? - PullRequest
0 голосов
/ 09 ноября 2018

В настоящее время я делаю что-то вроде этого ...
let params = new HttpParams().set('search', search); return this.http.get('/api/object/', {params});

Есть ли способ, которым я мог бы сделать это в одну строку вместо двух?
Что-то вроде (это не работает, выдает ошибку типа):
return this.http.get('/api/object/', {new HttpParams().set('search', search)});

Ссылка: https://angular.io/api/common/http/HttpParams

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

{ params } является ярлыком для { params: params }. Это работает только потому, что вы определили локальную переменную с именем params до этого.

Все, что вам нужно, это

return this.http.get('/api/object/', {params: new HttpParams().set('search', search)});

или просто

return this.http.get('/api/object/', { params: { search: search} });

или, используя тот же ярлык, что и для параметров:

return this.http.get('/api/object/', { params: { search } });
0 голосов
/ 09 ноября 2018

ВЫПУСК:

делает

return this.http.get('/api/object/', {params}); 

Создан объект options с ключом params и значением, удерживаемым переменной params. Это в основном сокращенный синтаксис для:

return this.http.get('/api/object/', { params: params }); 

И об этом позаботится ES6. Вы можете использовать его, когда имя key и переменная, содержащая value этого ключа, одинаковы (в первом случае * params)

Но выполнение того, что вы делаете в следующем фрагменте кода, не будет делать это неявно. Таким образом, вам придется явно упомянуть имя ключа (т.е. params) в объекте options, который вы передаете в качестве второго аргумента get

FIX:

Добавьте имя ключа как params в Объекте, который вы передаете в качестве второго аргумента get

return this.http.get('/api/object/', { params: new HttpParams().set('search', search) });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...