私はこのデータをp-tree(primeng)に持っています。初期ロードで選択されたすべての値を入れることができるかどうかを知りたいのですが。私は 'selectedFiles'に新しい配列を配置しようとしていましたが、現在のデータと、同じレベルの親と子が配列上にあり、親ノードとしか動作しませんでしたが、子ノードは動作しません。素数p-tree上のすべてのノードを選択する方法は?
データ:
this.filesTree = [
{
"label": "Documents",
"data": "Documents Folder",
"expandedIcon": "fa-folder-open",
"collapsedIcon": "fa-folder",
"children": [{
"label": "Work",
"data": "Work Folder",
"expandedIcon": "fa-folder-open",
"collapsedIcon": "fa-folder",
"children": [{"label": "Expenses.doc", "icon": "fa-file-word-o", "data": "Expenses Document"}, {"label": "Resume.doc", "icon": "fa-file-word-o", "data": "Resume Document"}]
},
{
"label": "Home",
"data": "Home Folder",
"expandedIcon": "fa-folder-open",
"collapsedIcon": "fa-folder",
"children": [{"label": "Invoices.txt", "icon": "fa-file-word-o", "data": "Invoices for this month"}]
}]
}
];
角度コード:
export class TreeDemo implements OnInit {
msgs: Message[];
@ViewChild('expandingTree')
expandingTree: Tree;
selectedFile: TreeNode;
constructor(private nodeService: NodeService) { }
ngOnInit() {
this.nodeService.getFiles().then(files => this.filesTree = files);
}
selectAll(){
// with the parent nodes is working
this.selectedFiles = this.filesTree.map(
files => {
... files
})
//this is an example of how I want to store but is not working
this.filesTree
.map(files => {
this.selectedFiles = files.children
.map(file => {
return {
... file,
parent: files
};
});
});
}
テンプレート:あなたが最も可能性の高い各アイテムのステップスルーする再帰関数を記述する必要があるとしている
<h3>Multiple Selection with Checkbox</h3>
<p-tree
[value]="filesTree"
selectionMode="checkbox"
[(selection)]="selectedFiles">
</p-tree>
<div>Selected Nodes:
<span *ngFor="let file of selectedFiles2">{file.label} </span>
</div