簡體   English   中英

對對象的角度HttpParams,Object.defineProperty創建屬性,但超出范圍

[英]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.assignnewObject旁邊創建另一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM