問題

我有這樣的結構:

 export var CustomDropdown: any[] = [
    { 
        class_name: "fonts-list", 
        list: false,
        ...
    }
]
 

初始化這個變數後,我建立了另一個:

 CustomDropdown.push(
    { 
        class_name: "colors-list", 
        list: CustomDropdown[0].list,
        ...
    }
)
 

你看,第二次我實現這個結構,我從第一個引用list.這工作正常.

問題是,我希望list鍵始終使用第一個保持自己更新(如果第一個的list變為真,第二個應該).

問題是,這不會發生,我相信這是因為,當製作第二個元素時,它只讀取第一個元素的list值,但它不會在它們之間建立任何聯絡.

所以我相信像C指標這樣的東西會解決我的問題,或者我不知道的任何其他策略.

此外,我不想要一個函式來控制這個,只有在它不可能的情況下.有人可以幫助我嗎?

  最佳答案

假設list最終將成為名稱意味著的陣列(您使用false初始化),您可以這樣做:

 export var CustomDropdown: any[] = [
    { 
        class_name: "fonts-list", 
        list: [],                  // empty Array (1)
        ...
    }
]

CustomDropdown.push(
    { 
        class_name: "colors-list", 
        list: CustomDropdown[0].list, // "reference" sharing of (1)
        ...
    }
);
 

從這裡,如果你做CustomDropdown[i].list.push(element),這將反映在CustomDropdown[0].list中.

除此之外,我相信,透過共享(“引用”),您無法真正傳遞一個原始的值,例如布林值.

  相同標籤的其他問題

angulartypescript