gpt4 book ai didi

javascript - 如何使用 Angular Material 在下拉列表中创建 TreeView ?

转载 作者:行者123 更新时间:2023-12-01 16:16:49 25 4
gpt4 key购买 nike

谁能告诉我,如何在下拉菜单中创建 TreeView 。下拉值将从 json 的 rest api 调用中获取,如下所示。并且 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'
}]
}]
}]
任何人的帮助将不胜感激!!!

最佳答案

基于 Angular Material Tree 中的第一个示例docs 我设法在内部建立了一个带有树结构的下拉菜单,如下所示:

显示树的技巧是添加一个禁用/空选项。我用它作为标签。树取自他们的示例,所以我根本没有修改它,您可以修改节点结构以匹配您自己的。
为了在下拉列表的标签中显示所选项目,您可以创建一个方法,该方法将返回所选项目的字符串作为其SelectionModel。对象具有 selected 属性,它将返回所有选定的节点。

/** The selection for checklist */
checklistSelection = new SelectionModel<TodoItemFlatNode>(
true /* multiple */
);
为了从树中获取选定的项目:
return this.checklistSelection.selected.map(s => s.item).join(",");

对于过滤部分,我认为您可以查看此 answer .
希望这有帮助!
Stackblitz
编辑:如果您选择一个 child ,即使没有选择所有 child , parent 也会被选中并添加到 SelectionModel 中。如果您不希望此行为评论函数 descendantsPartiallySelected .这不会选中复选框,因此除非选择所有子级,否则不会在 SelectionModel 中添加父级

关于javascript - 如何使用 Angular Material 在下拉列表中创建 TreeView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63229390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com