PrimeNG - Tree DragDrop,节点不可拖动
PrimeNG - Tree DragDrop, nodes are not draggable
我正在关注 PrimeNG 官方网站的 this example 来实现一个非常基本的 DragDrop Tree
(我只需要 re-ordering 功能,所有节点都是叶子 没有 children)。树(动态构建)构建成功,但是显示的节点不可拖动,所以我不能上下移动它们。下图
代码如下:
.html 文件
<p-tree [value]="getItemsInTreeForm()" [draggableNodes]="true" [droppableNodes]="true"
draggableScope="self" droppableScope="self">
</p-tree>
.ts 文件
public getItemsInTreeForm(): TreeNode[] {
let items = [{
label: "Item1",
data: "Backup Folder",
expandedIcon: "pi pi-folder-open",
collapsedIcon: "pi pi-folder"
},
{
label: "Item2",
data: "Backup Folder2",
expandedIcon: "pi pi-folder-open",
collapsedIcon: "pi pi-folder"
},
{
label: "Item3",
data: "Backup Folder3",
expandedIcon: "pi pi-folder-open",
collapsedIcon: "pi pi-folder"
}
]
return items as TreeNode[];
}
注意:我试过但没有成功,因为没有任何改变,浏览器的控制台也没有显示任何错误。
PrimeNG 版本 - 12.1.0, Angular 版本 - 12.2.3, Node 版本- 14.17.0
提供 TreeDragDropService
您需要提供 TreeDragDropService
例如:
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [TreeDragDropService], // Without it, it does not work (drag & drop)
})
初始化一个属性将被树
操纵的
你需要有一个合适的变量来支持你的树(不仅仅是你的函数return)
使用 getItemsInTreeForm()
的结果初始化组件的 属性,然后将其传递给模板。
在文档中看到他们没有直接传递 getFiles()
的结果,而是采用中间变量来支持树:
this.nodeService.getFiles().then(files => this.files1 = files);
我的 StackBlitz
这里 link 使用您的数据和方法 link 到 PrimeNG 12 上的工作拖放树 getItemsInTreeForm()
我正在关注 PrimeNG 官方网站的 this example 来实现一个非常基本的 DragDrop Tree
(我只需要 re-ordering 功能,所有节点都是叶子 没有 children)。树(动态构建)构建成功,但是显示的节点不可拖动,所以我不能上下移动它们。下图
代码如下:
.html 文件
<p-tree [value]="getItemsInTreeForm()" [draggableNodes]="true" [droppableNodes]="true"
draggableScope="self" droppableScope="self">
</p-tree>
.ts 文件
public getItemsInTreeForm(): TreeNode[] {
let items = [{
label: "Item1",
data: "Backup Folder",
expandedIcon: "pi pi-folder-open",
collapsedIcon: "pi pi-folder"
},
{
label: "Item2",
data: "Backup Folder2",
expandedIcon: "pi pi-folder-open",
collapsedIcon: "pi pi-folder"
},
{
label: "Item3",
data: "Backup Folder3",
expandedIcon: "pi pi-folder-open",
collapsedIcon: "pi pi-folder"
}
]
return items as TreeNode[];
}
注意:我试过
PrimeNG 版本 - 12.1.0, Angular 版本 - 12.2.3, Node 版本- 14.17.0
提供 TreeDragDropService
您需要提供 TreeDragDropService
例如:
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [TreeDragDropService], // Without it, it does not work (drag & drop)
})
初始化一个属性将被树
操纵的你需要有一个合适的变量来支持你的树(不仅仅是你的函数return)
使用 getItemsInTreeForm()
的结果初始化组件的 属性,然后将其传递给模板。
在文档中看到他们没有直接传递 getFiles()
的结果,而是采用中间变量来支持树:
this.nodeService.getFiles().then(files => this.files1 = files);
我的 StackBlitz
这里 link 使用您的数据和方法 link 到 PrimeNG 12 上的工作拖放树 getItemsInTreeForm()