问题

我有这样的结构:

 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