J'ai ces données sur p-tree (primeng), je veux savoir s'il est possible de mettre toutes les valeurs sélectionnées dans la charge initiale. J'essayais de mettre un nouveau tableau sur 'selectedFiles', avec les données actuelles, les parents et les enfants dans le même niveau, sur le tableau, travaillant uniquement avec le nœud parent, mais avec les nœuds enfants ne fonctionne pas.Comment sélectionner tous les nœuds sur l'arbre p-tree angulaire principal?
données:
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"}]
}]
}
];
Code angulaire:
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
};
});
});
}
Modèle:
<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