Angular 9 - Select 中的嵌套和分组选项

问题描述

再次问这个问题,因为它因重复而被关闭,但另一个问题与此无关。

我有一个看起来像这样的“选择元素”数组:

elements = [
{name: 'Root1',id: 1,parent_id: null},{name: 'Child1',id: 2,parent_id: 1},{name: 'Child11',id: 3,parent_id: 2},{name: 'Child211',id: 8,parent_id: 7}
{name: 'Child12',id: 4,parent_id: 2} 
{name: 'Root2',id: 5,{name: 'Child2',id: 6,parent_id: 4},{name: 'Child21',id: 7,parent_id: 5},]

它可以在任何给定时间增大或缩小。我想要一个选择框,只能选择孩子(由

Root1
  Child1
    Child11 <
    Child12 <
Root2
  Child2
    Child21
      Child211 <

我尝试过使用 Ng-Select 的 Groupby,按 parent_id 分组,但效果不佳。

使用以下代码:

<ng-select
  [items]="elements"
  bindLabel="name"
  bindValue="parent_id"
  groupBy="parent_id"
  [(ngModel)]="selectValue"
  >
<ng-template ng-optgroup-tmp let-item="item">
  {{ item.name || item.parent_id }}
</ng-template>
</ng-select>

这些组最终看起来像这样:

Root1
  Child1 <
Child1
  Child11 <
  Child12 <
Root2
  Child2 <
Child2
  Child21 <
Child21
  Child211 <
Root1 <
Root2 <

我将如何以只有没有任何子元素的元素是选项,而其他元素是选项组的方式动态生成这个选择组件?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)