为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用角度材料在下拉列表中创建树视图?

如何使用角度材料在下拉列表中创建树视图?

心有法竹 2022-12-18 15:38:11
谁能告诉我,如何在下拉列表中创建树视图。下拉值将从 rest api 调用作为 json 获取,如下所示。subchild 也可能包含更多级别的 child。我必须在这里做自动建议来执行父级和子级的过滤器。 VehicleList = [      {        parent: "audi",        child: [{          type: 'G-audiA',          subchild: [{              id: 1,              name: 'type audi A1'          }, {              id: 2,              name: 'type audi A2'          }]        }, {          type: 'G-audiB',          subchild: [{              id: 1,              name: 'type audi B1'          }, {              id: 2,              name: 'type audi B2'          }]        }]      }, {        parent: "bmw",        child: [{          type: 'G-bmwA',          subchild: [{              id: 1,              name: 'type bmw A1'          }, {              id: 2,              name: 'type bmw A2'          }]        }, {          type: 'G-bmwB',          subchild: [{              id: 1,              name: 'type bmw B1'          }, {              id: 2,              name: 'type bmw B2'          }]        }]  }]任何帮助将不胜感激!!!
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

基于Angular Material Tree文档中的第一个示例,我设法构建了一个下拉菜单,其中包含一个树结构,如下所示:

//img1.sycdn.imooc.com//639ec37f0001f32504730339.jpg

显示树的技巧是添加禁用/空选项。我用它作为标签。该树取自他们的示例,所以我根本没有修改它,您可以修改节点结构以匹配您自己的。


为了在下拉列表的标签中显示选定的项目,您可以创建一个方法,该方法将返回选定项目的字符串,因为它们的SelectionModel对象具有 selected 属性,该属性将返回所有选定的节点。


/** The selection for checklist */

checklistSelection = new SelectionModel<TodoItemFlatNode>(

    true /* multiple */

);

为了从树中获取选定的项目:


return this.checklistSelection.selected.map(s => s.item).join(",");

//img1.sycdn.imooc.com//639ec389000160ba02850084.jpg

对于过滤部分,我认为您可以查看此答案。希望这会有所帮助!

堆栈闪电战

编辑:如果您选择一个子项,即使未选择其所有子项,父项也会被选中并添加到 SelectionModel 中。如果您不希望此行为对函数进行评论descendantsPartiallySelected。这不会选中该复选框,因此除非选择了所有子项,否则不会将父项添加到 SelectionModel 中


查看完整回答
反对 回复 2022-12-18
  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号