[英]Angular HttpParams to object, Object.defineProperty creates property but is out of scope
我試圖通過基於HttpParams中的內容在對象上動態創建屬性來將HttpParams轉換為對象。
private transformParamsToObject(params: HttpParams) {
let newObject = {};
params.keys().forEach(x => Object.defineProperty(newObject, x, { value: params.get(x) }));
const foo = Object.assign({}, newObject);
return foo;
}
從調試器中可以看到,它定義了屬性,但是當我將該對象分配給foo時,它們似乎不在范圍內。 即使我只是返回newObject,它也沒有在作用域上對它們定義的屬性。
我覺得這里可能缺少一些非常簡單的東西。 有人可以幫忙嗎?
它們不可枚舉 ,這就是Object.assign
找不到它們的原因。 但是,當您可以直接分配屬性時,沒有理由在這里使用Object.defineProperty
,也沒有理由使用Object.assign
在newObject
旁邊創建另一個foo
對象。 做就是了
private transformParamsToObject(params: HttpParams) {
let newObject = {};
for (const x of params.keys())
newObject[x] = params.get(x);
return newObject;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.