HttpParams is immutable.
set()
tạo và trả về một trường hợp mới HttpParams, mà không biến đổi các ví dụ mà set()
được gọi.
Vì vậy, các mã nên được
const params = new HttpParams().set('personId', personId);
Dưới đây là một chuyện nữa tôi phải vật lộn với khi sử dụng HttpParams mới này, đôi khi chúng ta có số n của params để vượt qua, tại thời điểm đó nó rất hữu ích có một số chức năng chuyển đổi đối tượng tham số (mà chúng tôi đã sử dụng trước Angular 4.3) cho HttpParams.
Tôi đề nghị làm toHttpParams chức năng trong dịch vụ của bạn thường được sử dụng. Vì vậy, bạn có thể gọi hàm để chuyển đổi đối tượng thành HttpParams.
/**
* Convert Object to HttpParams
* @param {Object} obj
* @returns {HttpParams}
*/
toHttpParams(obj: Object): HttpParams {
return Object.getOwnPropertyNames(obj)
.reduce((p, key) => p.set(key, obj[key]), new HttpParams());
}
Cập nhật:
Kể từ 5.0.0-beta.6 (2017/09/03) họ thêm tính năng mới (accept object map for HttpClient headers & params)
Trong tương lai các đối tượng có thể được thông qua trực tiếp thay vì HttpParams.
Đây là lý do khác nếu bạn đã sử dụng một chức năng phổ biến như toHttpParams đề cập ở trên, bạn có thể dễ dàng loại bỏ nó hoặc làm thay đổi nếu cần thiết.
Nguồn
2017-11-09 22:02:13
Vâng tôi thấy rằng bây giờ, Cảm ơn! – ocespedes